Chào mừng bạn đến với các bài học Image classification, một trong những bài học thuộc mảng Computer Vision được mình viết trên blog cá nhân. Mong rằng qua những bài học trong series này, bạn sẽ nắm vững được một số kiến thức cơ bản trong việc phân loại hình ảnh sử dụng các phương pháp máy học, để từ...
Thứ Sáu, 23 tháng 11, 2018
Tìm hiểu về Convolutional Neural Network (CNN)
Chúng ta đã được tìm hiểu về mạng neural nhân tạo trong bài này. Nếu như đầu vào của chúng ta là 1 bức hình 30*30*3 pixel, thì lớp input của neural network sẽ là 30*30*3 neural. Số lượng neural này vẫn tạm chấp nhận được cho quá trình training vì chi phí tính toán cũng chưa phải là lớn lắm. Nhưng nếu...
Cấu trúc của 1 neural
Mỗi neural sẽ nhận vào các input. Các input này có thể là giá trị của tập dataset đưa vào (ví dụ như các điểm ảnh), hoặc input này cũng có thể là các giá trị output của layer trước đó.
Mỗi input đi vào sẽ kèm với 1 giá trị Weight. Weight này có thể hiểu là 1 cái cầu nối giữa input và neural.
Lấy ví...
Kiến trúc mạng neural nhân tạo
Kiến trúc của một mạng neural
Mạng neural nhân tạo, Aritificial Neural network (viết tắt là ANN). Đây là mạng đang được nhắc đến siêu nhiều trong các bài quảng cáo về công nghệ AI, bạn chắc hẳn đã gặp đâu đó những câu từ như: “chúng được xây dựng dựa trên công nghệ AI, công nghệ này áp dụng một mạng...
Giải thích quá trình máy học
Sau quá trình học được score function, loss function, optimization (gradient descent), backpropagation. Mình sẽ giải thích cho mọi người quá trình máy học dựa trên những khái niệm này.
Đầu tiên, một bức ảnh sẽ được đưa vào model dự đoán của chúng ta. Model ở đây thực chất là tập hợp các Weight...
Backpropagation
Phần backpropagation này rất nặng về toán đạo hàm nhé. Nên ai chưa có kiến thức đạo hàm riêng thì bắt buộc phải học trước đi nhé.
Ý nghĩa của đạo hàm riêng
Giả sử ta có hàm f = xy. Theo đạo hàm riêng thì ta có:
$\frac{\delta f}{\delta x}=y$ , $\frac{\delta f}{\delta y}=x$
Ví dụ với x= 4 và y =-3....
L2 Regularization
Trong máy học, vấn đề nhức nhối bao nhiêu con người ưu tú của nhân loại là Overfitting, do đó, có rất nhiều người đêm quên ăn, ngày ăn bù để suy nghĩ làm sao để hạn chế được Overfitting. Và một ý tưởng chợt lóe ra, ý tưởng này có thể mường tượng được như sau: bạn có một model với tập hợp các parameters, parameters càng nhiều thì model càng phức tạp. Đúng chưa? mà model càng phức tạp thì overfitting...
Optimization và Gradient Descent
Chúng ta đã tìm hiểu về score function và loss function.
Giả sử score function có công thức $f(x_{i},W)=Wx_{i}$, và loss function (SVM loss) có công thức: $L_{i}=\sum_{j\neq y_{i}}max(0,s_{j}-s_{y_{i}}+\Delta )$
Mục tiêu của chúng ta là phải làm sao cho giá trị loss càng thấp càng tốt ( tức là dự đoán...
Loss Function
Trong bài Score Function, khi nhìn vào công thức của linear classifier: $f(x_{i},W,b)=Wx_{i}+b$ ta có thể thấy được rằng: $x_{i}$ là đại lượng không thể thay đổi được (vì nó là bức hình chúng ta đưa vào). Nhưng ta có thể thay đổi được các parameters (W và b). Từ đó có ý tưởng, chúng ta sẽ thay đổi các...
Score Function
Score function là gì? Đơn giản mà hiểu:
Score function là một hàm có khả năng chuyển từng pixel trên 1 bức ảnh thành các điểm tin cậy (confidence score) tương ứng với mỗi nhãn dán.
Đọc khái niệm thì có vẻ khó hiểu. Nhưng cứ đi vào ví dụ thì mọi chuyện sẽ dễ dàng hơn.
Giả sử ta có 1 tập training set...
Cross Validation
Bài này sẽ giới thiệu một khái niệm trong lĩnh vực máy học đó là Cross Validation, một phương pháp siêu phổ biến để hạn chế Overfittings trong huấn luyện mạng. Vậy Cross Validation là gì?
Chúng ta phải quay lại bài toán training model trong máy học.
Như bạn đã biết, thường với một bộ dataset chúng ta...
Cài đặt K-Nearest Neigbor với Python
Hi mọi người, hôm nay mình sẽ cài đặt thử thuật giải KNN với Python. Cũng như ở bài trước, chúng ta đã thử cài đặt NN với Python, mặc dù thuật toán cùi bắp nhưng vẫn có kết quả dự đoán khá ngon (38.6%). Lần này, để áp dụng KNN giải bài toán classification trên CIFAR-10 xem như thế nào.
Để tìm hyperparameter...
K-Nearest Neighbor
Khi đọc về thuật toán Nearest Neighbor, ai nói thuật toán đó là vớ vẩn thì bước ra đây! Mấy người đúng rồi đấy =)) Đúng là NN rất vớ vẩn, với một người không giỏi toán như mình, khi nhìn nhận NN qua xác xuất thống kê đã thấy không ổn rồi. Chẳng ai lại đoán nhãn của 1 đối tượng dựa vào duy nhất 1 đối...
Cài đặt thuật giải Nearest Neighbor với Python
Bài này sẽ giúp các bạn chạy thử thuật giải Nearest Neighbor bằng ngôn ngữ Python. Dataset được sử dụng trong bài này là CIFAR-10, một bộ dữ liệu khá nổi tiếng cho bài toán nhận dạng hình ảnh. Nói sơ qua về dataset này, CIFAR-10 chứa 60000 bức ảnh màu có kích thước 32*32, tổng số nhãn dán là 10 nhãn....
Nearest Neighbor Classifier
Khái niệm
Thuật toán đầu tiên mà chúng ta học là Nearest Neighbor Classifier. Tiếng việt được gọi là người láng giềng gần nhất, nhưng đôi khi cũng được gọi là người hàng xóm kế bên… Riêng mình, mình thích gọi là “NN”. Vậy NN là gì? Đơn giản mà hiểu:
Nearest Neighbor Classifier là phương pháp mà bạn...
Giới Thiệu Series Image Classification
Hé lồ mọi người, chào mừng mọi người đến với series bài học về image classification. Loạt bài này sẽ tập trung khai thác những kĩ thuật liên quan đến nhận dạng hình ảnh, một trong những bài toán của thị giác máy tính. Toàn bộ series được viết dựa trên khóa học CS231n… đây là một khóa học cực kì hay mà mình đã từng đọc và thiết nghĩ nó sẽ rất hữu ích nếu mọi người theo dõi và thực hành khóa học này....
Overfitting là gì
Dẫm chân vào lĩnh vực máy học, ai cũng phải đạp qua 1 khái niệm gọi là: OverFitting (tiếng việt là : "khít quá!!!"). Vậy Overfitting là gì? Tại sao lúc nào khái niệm này cũng xuất hiện và ám ảnh người học đến thế? Bài này sẽ giúp bạn có cái nhìn tổng quát về vấn đề này.
Chúng ta cùng xem xét 2 tập dữ...
Training set, Testing set, Validation set
Trong máy học, có một khái niệm mà tất cả chúng ta hầu như phải bắt gặp ít nhất là chục lần, đó là dataset. Dataset là tập dữ liệu mà chúng ta làm việc cùng, chính là tập dữ liệu mà chúng ta áp dụng các thuật toán AI, các mô hình máy học để thử nghiệm và đánh giá. Và thông thường, tập dataset này có kích thước rất lớn, và người ta chia nó ra làm các tập nhỏ hơn.
Training set
Đầu tiên là tập training...
Phân lớp hình ảnh
Định nghĩa image classification
Đầu tiên, Classification ở đây là gì? Hiểu 1 cách đơn giản, classification là bạn sẽ gán nhãn cho 1 đối tượng. Ví dụ cho dễ hiểu nhá: bạn có 1 bộ bài chứa hình ảnh của những con vật. Bạn rút ra 1 lá bài có hình con mèo, classification là bạn phải viết chữ “mèo” lên...
Giới thiệu về tôi
Được tạo bởi Blogger.