Đây là những câu hỏi phỏng vấn bạn có thể gặp khi phỏng vấn cho vị trí Kỹ sư AI. Trên thực tế, không phải cuộc phỏng vấn nào cũng cần sử dụng tất cả những câu hỏi này vì nó còn phụ thuộc vào kinh nghiệm và những dự án ứng viên đã làm trước đó. 12 câu hỏi phỏng vấn hay nhất trong Deep Learning dưới đây được tác giả Itchishiki Satoshi, người đang làm việc tại Paypal Japan, tổng hợp qua nhiều cuộc phỏng vấn, đặc biệt với sinh viên. Hy vọng các câu hỏi này sẽ giúp ích được cho các bạn trong buổi phỏng vấn sắp tới.
Câu 1: Trình bày ý nghĩa của Batch Normalization
Đây có thể coi là một câu hỏi phỏng vấn về Deep Learning rất hay vì nó bao hàm hầu hết các kiến thức mà thí sinh cần biết khi làm việc với mô hình mạng nơron. Cách trả lời của bạn có thể khác nhưng cần làm rõ các ý chính sau:
Batch Normalization (Chuẩn hóa hàng loạt hay chuẩn hóa theo batch) là một phương pháp hiệu quả khi đào tạo một mô hình mạng nơ-ron. Mục tiêu của phương pháp này là muốn chuẩn hóa các đặc trưng (feature) (đầu ra của mỗi lớp sau khi trải qua kích hoạt) về trạng thái zero-mean (trung bình bằng không) với độ lệch chuẩn 1. Vậy hiện tượng ngược lại là non-zero mean (trung bình khác không), nó ảnh hưởng như thế nào đến mô hình đào tạo?
- Thứ nhất, trung bình khác 0 là hiện tượng dữ liệu không được phân phối xung quanh giá trị 0, nhưng dữ liệu có hầu hết các giá trị lớn hơn 0 hoặc nhỏ hơn 0. Kết hợp với vấn đề phương sai cao (high variance), dữ liệu trở nên rất lớn hoặc rất nhỏ. Sự cố này thường gặp khi đào tạo mạng nơ-ron với số lớp sâu (deep layer numbers). Việc các đặc trưng không được phân phối trong các khoảng thời gian ổn định (giá trị từ nhỏ đến lớn) sẽ có ảnh hưởng đến quá trình tối ưu hóa mạng.
- Như chúng ta đã biết, việc tối ưu hóa mạng nơ ron sẽ cần sử dụng các phép tính đạo hàm. Giả sử công thức tính lớp đơn giản là y = (Wx + b), đạo hàm của y từ w có dạng: dy = dWx. Như vậy giá trị của x ảnh hưởng trực tiếp đến giá trị của đạo hàm (tất nhiên, khái niệm gradient trong mô hình mạng nơron không thể đơn giản như vậy nhưng về mặt lý thuyết, x sẽ ảnh hưởng đến đạo hàm). Do đó, nếu x mang lại những thay đổi không ổn định, đạo hàm có thể quá lớn, hoặc quá nhỏ, dẫn đến một mô hình học tập không ổn định. Và điều đó cũng có nghĩa là chúng ta có thể sử dụng tỷ lệ học tập (learning rates) cao hơn trong quá trình đào tạo khi sử dụng Batch Normalization.
- Chuẩn hóa hàng loạt có thể giúp chúng ta tránh hiện tượng giá trị của x rơi vào trạng thái bão hòa sau khi trải qua các hàm kích hoạt phi tuyến tính. Vì vậy, nó đảm bảo rằng không có kích hoạt nào bị vượt quá cao hoặc quá thấp. Điều này giúp cho những trọng lượng (weigh) mà khi không sử dụng Batch normalization có thể sẽ không bao giờ học được thì nay lại được học một cách bình thường. Điều này giúp chúng ta giảm bớt sự phụ thuộc vào giá trị ban đầu của các tham số.
- Chuẩn hóa hàng loạt cũng hoạt động như một hình thức chính quy hóa (regularization) giúp giảm thiểu hiện tượng overfitting. Bằng cách sử dụng chuẩn hóa hàng loạt, chúng ta sẽ không cần sử dụng quá nhiều tệp nhỏ và điều này có ý nghĩa vì sẽ không cần phải lo lắng về việc mất quá nhiều thông tin khi drop down mạng. Tuy nhiên, vẫn nên sử dụng kết hợp cả hai kỹ thuật.
Câu 2: Trình bày khái niệm và mối quan hệ đánh đổi giữa độ lệch và phương sai?
Bias (độ lệch) là gì? Có thể hiểu, độ lệch là sự khác biệt giữa dự đoán trung bình của mô hình hiện tại và kết quả thực tế mà chúng ta cần dự đoán. Một mô hình có độ lệch cao chỉ ra rằng nó ít tập trung vào dữ liệu đào tạo hơn. Điều này làm cho mô hình quá đơn giản và không đạt được độ chính xác tốt trên cả đào tạo và thử nghiệm. Hiện tượng này còn được gọi là underfitting.
Variance (phương sai) có thể hiểu một cách đơn giản là sự phân bố (hoặc phân cụm) của các kết quả đầu ra của mô hình trên một điểm dữ liệu. Phương sai càng lớn, càng có nhiều khả năng là mô hình đang chú ý nhiều đến dữ liệu huấn luyện và không cung cấp tổng quát về dữ liệu chưa từng gặp. Kết quả là mô hình đạt kết quả cực kỳ tốt trên tập dữ liệu huấn luyện, nhưng kết quả lại rất kém với tập dữ liệu thử nghiệm. Đây là hiện tượng overfitting.
Mối tương quan giữa hai khái niệm này có thể được hình dung bằng hình sau:
Trong sơ đồ trên, tâm của vòng tròn là một mô hình dự đoán chính xác các giá trị một cách hoàn hảo. Trong thực tế, bạn chưa bao giờ tìm thấy một mô hình tốt như vậy. Khi chúng ta càng ra xa tâm của vòng tròn, các dự đoán của chúng ta ngày càng trở nên tồi tệ hơn.
Chúng ta có thể thay đổi mô hình để tăng số lượng mô hình dự đoán rơi vào tâm của vòng tròn nhiều nhất có thể. Cần có sự cân bằng giữa các giá trị Bias và Variance. Nếu mô hình của chúng ta quá đơn giản và có rất ít tham số thì nó có thể có độ lệch cao và phương sai thấp.
Bên cạnh đó, nếu mô hình của chúng ta có một số lượng lớn các tham số thì nó sẽ có phương sai cao và độ chệch thấp. Đây là cơ sở để chúng ta tính toán độ phức tạp của mô hình khi thiết kế thuật toán.
Câu 3: Giả sử rằng mô hình Học sâu đã tìm thấy 10 triệu vectơ khuôn mặt. Làm thế nào để tìm một khuôn mặt mới nhanh nhất bằng các truy vấn.
Câu hỏi phỏng vấn này nói về ứng dụng của thuật toán Deep Learning trong thực tế, điểm mấu chốt của câu hỏi này là phương pháp lập chỉ mục dữ liệu. Đây là bước cuối cùng trong bài toán áp dụng One Shot Learning cho nhận dạng khuôn mặt nhưng lại là bước quan trọng nhất giúp ứng dụng này dễ dàng triển khai trên thực tế.
Về cơ bản, với câu hỏi này, bạn nên trình bày tổng quan về phương pháp nhận dạng khuôn mặt bằng One Shot Learning trước. Có thể hiểu đơn giản là biến mỗi khuôn mặt thành một vector, và nhận dạng khuôn mặt mới là tìm các vector gần nhất (giống nhất) với khuôn mặt đầu vào. Thông thường, mọi người sẽ sử dụng mô hình học sâu với một hàm mất mát tùy chỉnh (custom loss function) được gọi là triplet loss để làm điều đó.
Tuy nhiên, với sự gia tăng số lượng hình ảnh ở đầu bài viết, việc tính toán khoảng cách đến 10 triệu vector trong mỗi nhận dạng không phải là giải pháp thông minh, khiến hệ thống chậm đi rất nhiều. Chúng ta cần nghĩ đến các phương pháp lập chỉ mục dữ liệu trên không gian vectơ thực để làm cho truy vấn thuận tiện hơn.
Ý tưởng chính của các phương pháp này là chia dữ liệu thành các cấu trúc dễ dàng để truy vấn dữ liệu mới (có thể tương tự như cấu trúc cây). Khi có dữ liệu mới, việc truy vấn trong cây sẽ giúp nhanh chóng tìm ra vector có khoảng cách gần nhất với thời gian rất nhanh chóng.
Có một số phương pháp có thể được sử dụng cho mục đích này, chẳng hạn như băm nhạy cảm theo địa phương Locality Sensitive Hashing — LSH, Approximate Nearest Neighbors Oh Yeah — Annoy Indexing, Faiss…
Câu 4: Với bài toán phân loại, chỉ số độ chính xác có hoàn toàn đáng tin cậy không? Bạn thường sử dụng số liệu nào để đánh giá mô hình của mình?
Với một bài toán phân lớp, có nhiều cách đánh giá khác nhau. Về độ chính xác, công thức chỉ đơn giản là lấy số điểm dữ liệu dự đoán chính xác chia cho tổng dữ liệu. Điều này nghe có vẻ hợp lý, nhưng trên thực tế, đối với vấn đề dữ liệu không cân bằng, số lượng này không đủ đáng kể. Giả sử chúng ta đang xây dựng một mô hình dự đoán cho các cuộc tấn công mạng (giả sử các yêu cầu tấn công chiếm khoảng 1/100000 số lượng yêu cầu).
Nếu mô hình dự đoán rằng tất cả các yêu cầu đều bình thường, thì độ chính xác cũng lên đến 99,9999% và con số này thường không đáng tin cậy trong mô hình phân loại. Tính toán độ chính xác ở trên thường cho chúng ta biết có bao nhiêu phần trăm dữ liệu được dự đoán chính xác, nhưng không cho biết từng lớp được phân loại chi tiết như thế nào. Thay vào đó, chúng ta có thể sử dụng ma trận Confusion. Về cơ bản, Confusion matrix cho biết có bao nhiêu điểm dữ liệu thực sự thuộc về một lớp và được dự đoán là thuộc một lớp. Nó có dạng sau:
Ngoài việc biểu thị sự thay đổi của các chỉ số Tích cực Đúng (True Positive) và Tích cực Sai (False Positive) tương ứng với mỗi ngưỡng xác định phân loại, chúng ta có một đồ thị được gọi là Receiver Operating Characteristic – ROC. Dựa vào ROC chúng ta có thể biết được mô hình có hiệu quả hay không.
ROC lý tưởng là đường màu cam càng gần với góc trên cùng bên trái (nghĩa là: True Positive cao và False Positive thấp hơn) càng tốt.
Câu 5: Bạn hiểu thế nào về Backpropagation? Giải thích cơ chế hoạt động?
Câu hỏi phỏng vấn về deep learning này nhằm mục đích kiểm tra kiến thức về cách hoạt động của mạng nơ-ron. Bạn cần làm rõ những điểm sau
- Quá trình chuyển tiếp (Forward Calculation) là một quá trình giúp mô hình tính toán trọng số của mỗi lớp, và kết quả tính toán sẽ mang lại kết quả yp. Lúc này sẽ tính giá trị của hàm mất mát; giá trị của hàm mất mát sẽ cho thấy mô hình tốt như thế nào. Nếu hàm mất mát không đủ tốt, chúng ta cần tìm cách giảm giá trị của hàm mất mát. Đào tạo một mạng nơ-ron về cơ bản là giảm thiểu đáng kể hàm mất mát. Hàm tổn thất L (yp, yt) thể hiện mức độ khác biệt giữa giá trị đầu ra của mô hình yp và giá trị thực của nhãn dữ liệu yt.
- Để giảm giá trị của hàm mất mát, chúng ta cần sử dụng đạo hàm. Truyền ngược (backpropagation) giúp chúng ta tính toán đạo hàm cho mỗi lớp của mạng. Dựa trên giá trị của đạo hàm trên mỗi lớp, trình tối ưu hóa (Adam, SGD, AdaDelta…) áp dụng gradient descent sẽ cập nhật trọng số của mạng.
- Backpropagation (Truyền ngược) sử dụng cơ chế quy tắc chuỗi hoặc hàm dẫn xuất để tính toán các giá trị gradient của mỗi lớp từ lớp cuối cùng đến lớp đầu tiên.
Câu 6: Ý nghĩa của hàm kích hoạt là gì? Điểm bão hòa của các hàm kích hoạt là gì?
Ý nghĩa của hàm kích hoạt (Activation function)
Các hàm kích hoạt ra đời với mục đích phá vỡ tính tuyến tính của mạng nơ-ron. Các hàm này có thể hiểu đơn giản là một bộ lọc để quyết định thông tin có được đưa qua các nơron hay không. Trong quá trình đào tạo mạng nơron, các hàm kích hoạt đóng một vai trò quan trọng trong việc điều chỉnh độ dốc đạo hàm. Một số hàm kích hoạt như hàm sigmoid, tanh hoặc ReLU sẽ được thảo luận kỹ hơn trong các phần sau.
Tuy nhiên, chúng ta cần hiểu rằng các thuộc tính của các hàm phi tuyến này làm cho mạng nơron có thể học cách biểu diễn các hàm phức tạp hơn là chỉ sử dụng các hàm tuyến tính. Hầu hết các hàm kích hoạt là các hàm liên tục và có thể phân biệt
Các hàm này là các hàm liên tục, tức là có một sự thay đổi nhỏ ở đầu ra nếu đầu vào có sự biến thiên nhỏ và có thể phân biệt được (có một đạo hàm tại mọi điểm trong miền xác định của nó). Tất nhiên, như đã nói ở trên, việc tính đạo hàm rất quan trọng và nó là yếu tố quyết định đến việc nơron của chúng ta có luyện được hay không. Một số hàm kích hoạt có thể kể đến như Sigmoid, Softmax, ReLU.
Phạm vi bão hòa của hàm kích hoạt
Các hàm kích hoạt phi tuyến như chức năng Tanh, Sigmoid và ReLU đều có khoảng bão hòa
Có thể hiểu đơn giản rằng các khoảng bão hòa của hàm trigger là những khoảng mà giá trị đầu ra của hàm không thay đổi mặc dù giá trị đầu vào có thay đổi. Có hai vấn đề của khoảng thời gian thay đổi là theo chiều thuận của mạng nơ-ron, các giá trị của lớp rơi vào trạng thái bão hòa của chức năng kích hoạt sẽ dần đến với nhiều giá trị sản lượng dầu giống nhau.
Điều này dẫn đến luồng dữ liệu giống nhau trong toàn bộ mô hình. Hiện tượng này là hiện tượng dịch chuyển hiệp phương sai (phenomenon of covariance shifting). Vấn đề thứ hai là theo chiều lùi, đạo hàm sẽ bằng 0 trong vùng bão hòa và do đó mạng gần như không học thêm được gì. Đó là lý do tại sao chúng ta cần đặt phạm vi giá trị có nghĩa là 0 như đã đề cập trong phần Chuẩn hóa hàng loạt (Batch Normalization)
Câu 7: Các siêu tham số của mô hình là gì? Nó khác với các thông số như thế nào?
Tham số mô hình (Model Parameter) là gì?
Quay trở lại bản chất của Machine Learning một chút, để làm được machine learning chúng ta cần có một tập dữ liệu, không có dữ liệu thì làm sao học được đúng không? Khi đã có dữ liệu, máy cần tìm kết nối trong đống dữ liệu.
Giả sử dữ liệu của chúng ta là thông tin thời tiết như nhiệt độ, độ ẩm, nhiệt độ… và yêu cầu cho Máy tìm ra mối liên hệ giữa các yếu tố trên với việc người yêu có giận dỗi hay không. ? Nghe có vẻ không liên quan nhưng danh sách việc cần làm của học máy đôi khi khá ngớ ngẩn. Bây giờ, giả sử chúng ta sử dụng biến y để biểu thị người yêu của chúng ta đang tức giận hay không tức giận? các biến x1, x2, x3… đại diện cho các yếu tố thời tiết. Chúng tôi gán mối quan hệ để tìm hàm f (x) như sau:
Bạn có thấy các hệ số w1, w2, w3..w_1, w_2, w_3 ..w1, w2, w3 ..? Đó là mối quan hệ giữa dữ liệu và phần tử mà chúng ta đang yêu cầu, được gọi là Tham số mô hình (Model Parameter). Vì vậy, chúng ta có thể xác định tham số mô hình như sau:
Các tham số của mô hình là các giá trị của mô hình được tạo ra từ dữ liệu huấn luyện để giúp thể hiện mối quan hệ giữa các đại lượng trong dữ liệu.
Vì vậy, khi chúng ta nói rằng tìm ra mô hình tốt nhất cho vấn đề, điều đó có nghĩa là chúng ta đã tìm thấy các tham số Mô hình phù hợp nhất cho vấn đề trên tập dữ liệu hiện có. Nó có một số đặc điểm như sau:
- Nó được sử dụng để dự đoán dữ liệu mới
- Nó cho thấy sức mạnh của mô hình mà chúng ta đang sử dụng. Thường được thể hiện bằng độ chính xác hoặc cái mà chúng ta gọi là độ chính xác
- Học trực tiếp từ tập dữ liệu đào tạo
- Thường không do con người đặt thủ công
Các Model Parameters có thể được tìm thấy ở một số dạng như trọng số mạng nơron (neural network weights), vectơ hỗ trợ trong SVM (Support Vector Machine) hoặc các hệ số trong thuật toán hồi quy tuyến tính hoặc hồi quy logistic.
Siêu tham số mô hình là gì?
Chúng ta thường giả định Model Hyerparameter (Siêu thông số mô hình) là hoặc giống như là Model Parameter (Tham số mô hình) nhưng điều đó không đúng. Thực ra hai khái niệm này hoàn toàn tách biệt. Nếu Model Parameter được mô hình hóa từ chính tập dữ liệu huấn luyện, thì Model Hyperparameter lại hoàn toàn khác. Nó hoàn toàn nằm ngoài mô hình và không phụ thuộc vào dữ liệu đào tạo. Vậy mục đích của nó là gì? Trên thực tế, họ có một số nhiệm vụ như sau:
- Được sử dụng trong quá trình đào tạo, giúp mô hình tìm ra các thông số thích hợp nhất
- Nó thường được lựa chọn bởi những người tham gia khóa đào tạo mô hình
- Nó có thể được xác định dựa trên một số chiến lược suy nghiệm (heuristics strategies)
Chúng ta hoàn toàn không biết mô hình Hyperparameter tốt nhất cho một vấn đề cụ thể là gì. Do đó, trong thực tế, chúng ta cần sử dụng một số kỹ thuật để ước lượng phạm vi giá trị tốt nhất (ví dụ, hệ số k trong mô hình K Nearest Neighbor) chẳng hạn như Grid Search. Ở đây tôi muốn đưa ra một vài ví dụ về Model Hyperparameter:
- Chỉ số tốc độ học tập khi đào tạo mạng nơ-ron nhân tạo
- Các tham số C và sigma khi đào tạo một Máy hỗ trợ Véc tơ
- Hệ số k trong mô hình K Nearest Neighbor
Câu 8: Điều gì xảy ra khi tốc độ học tập quá cao hoặc quá thấp?
Khi tốc độ học tập (learning rate) của mô hình được đặt quá thấp, quá trình đào tạo mô hình sẽ diễn ra rất chậm vì nó phải cập nhật rất nhỏ về trọng số. Sẽ mất nhiều bản cập nhật trước khi đạt đến điểm tối ưu cục bộ
Nếu tỷ lệ học tập được đặt quá cao, mô hình khó có khả năng hội tụ do sự cập nhật quá mạnh của các trọng số. Có thể trong một bước tính trọng số, mô hình đã khắc phục được tối ưu cục bộ khiến mô hình khó tự cập nhật sau này về điểm tối ưu (chạy giữa điểm tối ưu hóa cục bộ sau khi nhảy quá xa)
Câu 9: Khi kích thước hình ảnh đầu vào tăng lên gấp đôi thì số lượng thông số CNN tăng lên bao nhiêu lần? Tại sao?
Đây là một câu hỏi phỏng vấn về deep learning rất dễ gây hiểu lầm cho các ứng viên vì hầu hết mọi người sẽ suy nghĩ theo hướng câu hỏi số lượng thông số CNN sẽ tăng lên bao nhiêu lần. Tuy nhiên, hãy xem kiến trúc của CNN:
Chúng ta có thể thấy rằng số lượng các tham số của mô hình CNN phụ thuộc vào số lượng và kích thước của các bộ lọc chứ không phụ thuộc vào hình ảnh đầu vào. Do đó, việc tăng gấp đôi kích thước của hình ảnh không làm thay đổi số lượng các thông số của mô hình.
Câu 10: Một số cách để đối phó với dữ liệu mất cân bằng là gì?
Đây là một câu hỏi thường gặp trong phỏng vấn deep learning nhằm kiểm tra cách tiếp cận của ứng viên đối với các vấn đề với dữ liệu thực. Thông thường, dữ liệu thực tế sẽ khác nhau rất nhiều về đặc tính cũng như lượng dữ liệu từ các tập dữ liệu mẫu (tập dữ liệu chuẩn không cần điều chỉnh). Với tập dữ liệu thực tế, có thể xảy ra trường hợp mất cân bằng (imbalance) dữ liệu, nghĩa là dữ liệu không cân bằng giữa các lớp. Bây giờ chúng ta có thể xem xét các kỹ thuật sau:
- Chọn số liệu phù hợp để đánh giá mô hình: với một tập dữ liệu không cân bằng, việc sử dụng độ chính xác để đánh giá là một công việc rất nguy hiểm như đã trình bày ở các phần trên. Nên chọn các đại lượng đánh giá phù hợp như Độ chính xác (Precision), Độ thu hồi (Recall), Điểm F1 (F1 Score), AUC.
- Lấy lại mẫu tập dữ liệu huấn luyện: Ngoài việc sử dụng các tiêu chí đánh giá khác nhau, mọi người cũng có thể áp dụng các kỹ thuật để có được các tập dữ liệu khác nhau. Hai cách tiếp cận để tạo tập dữ liệu cân bằng từ tập hợp không cân bằng là Lấy mẫu dưới (Under-sampling), tức giảm số lượng dữ liệu chênh lệch xuống, và Lấy mẫu quá (Over-sampling), tức nhân số lượng dữ liệu bị chênh lệch lên nhiều lần để có một data cân xứng hơn, với các phương pháp như lặp lại (repetition), bootstrapping hoặc SMOTE (Kỹ thuật lấy mẫu quá mức thiểu số tổng hợp).
- Kết hợp nhiều mô hình khác nhau: Tổng quát hóa mô hình bằng cách tạo thêm dữ liệu không phải lúc nào cũng khả thi trong thực tế. Ví dụ, bạn có hai lớp, một lớp hiếm có 1000 dữ liệu, một lớp lớn chứa 10.000 mẫu dữ liệu. Vì vậy, thay vì cố gắng tìm 9000 mẫu dữ liệu của một lớp hiếm để thực hiện đào tạo mô hình, chúng ta có thể nghĩ đến giải pháp đào tạo 10 mô hình. Mỗi mô hình được đào tạo từ 1000 lớp hiếm và 1000 lớp đại trà. Sau đó, sử dụng kỹ thuật kết hợp (ensemble technique) để có được kết quả tốt nhất.
- Thiết kế lại mô hình – hàm chi phí: Sử dụng kỹ thuật Phạt (Penalty techniques) để trừng phạt nghiêm khắc các lớp giàu (rich classes) trong hàm chi phí để giúp bản thân mô hình học tốt hơn dữ liệu của lớp hiếm (rare class). Điều này làm cho giá trị của hàm mất mát tổng thể hơn giữa các lớp.
Câu 11: Các khái niệm Epoch, Batch và Iteration có nghĩa là gì khi đào tạo một mô hình Học sâu?
Đây là những khái niệm rất cơ bản trong khi đào tạo mạng nơ-ron nhưng thực tế là khá nhiều ứng viên lúng túng với câu hỏi này khi phân biệt các khái niệm này trong phỏng vấn deep learning. Cụ thể, bạn nên trả lời như sau:
- Epoch: đại diện cho một lần lặp trên toàn bộ tập dữ liệu (mọi thứ đều được đưa vào mô hình đào tạo).
- Batch (Hàng loạt): Đề cập đến thời điểm chúng tôi không thể di chuyển toàn bộ tập dữ liệu vào mạng nơ-ron cùng một lúc, vì vậy, chúng tôi chia tập dữ liệu thành nhiều lô của tập dữ liệu nhỏ hơn.
- Iteration (Lặp lại): là số batch cần thiết để chạy một epoch. Giả sử, chúng ta có 10.000 hình ảnh làm dữ liệu và kích thước của lô (batch_size) là 200 thì một epoch sẽ bao gồm 50 Lặp lại (10.000 chia cho 200).
Câu 12: Khái niệm về Data Generator là gì? Khi nào chúng ta cần sử dụng nó?
Nó cũng rất quan trọng trong lập trình, đó là hàm Generative. Chức năng tạo dữ liệu giúp chúng ta tạo dữ liệu trực tiếp để đưa vào mô hình trong mỗi đợt đào tạo
Việc sử dụng hàm Generative sẽ giúp ích rất nhiều trong việc đào tạo dữ liệu lớn. Vì không phải lúc nào tập dữ liệu cũng cần phải tải hết vào RAM gây lãng phí bộ nhớ, hơn nữa nếu tập dữ liệu quá lớn có thể dẫn đến tràn bộ nhớ và thời gian xử lý dữ liệu đầu vào sẽ lâu hơn.
Kết luận
Trên đây là 12 câu hỏi phỏng vấn về Deep Learning mà tác giả thường hỏi các ứng viên trong quá trình phỏng vấn. Tuy nhiên, tùy từng ứng viên mà cách hỏi sẽ khác nhau hoặc cũng có những câu hỏi được đưa ra một cách ngẫu nhiên từ những vấn đề mà ứng viên đã làm.
Tuy là bài viết về các câu hỏi kỹ thuật trong phỏng vấn deep learning nhưng thái độ của bạn quyết định 50% thành công của buổi phỏng vấn. Vì vậy ngoài việc tích lũy cho mình những kiến thức, kỹ năng, hãy luôn thể hiện mình với thái độ chân thành, cầu tiến, khiêm tốn, chắc chắn bạn sẽ gặt hái được nhiều thành công trong bất kỳ cuộc phỏng vấn nào. Chúc các bạn sớm đạt được mong muốn của mình.
Bài gốc của tác giả Itchishiki Satoshi được đăng trên Medium tại các link sau:
Bài viết quá hay luôn