Posts

Showing posts with the label AI

Recurrent Neural Network and Long-Short Term Memory

Image
Recurrent Neural Network In traditional neural networks, all the inputs and outputs are independent of each other, but in cases like when it is required to predict the next word of a sentence, the previous words are required and hence there is a need to remember the previous words.  Thus Recurrent Neural Network (RNN) came into existence. RNN are networks with loops in them, allowing information to persist. Recurrent Neural Network Architecture In the above diagram, the network takes $ x_t$ as input and outputs $ y_t$. The hidden layer applies a formula to the current input as well as the previous state to get current state $ h_t$. The formula for the current state can be written like this: $h_t = tanh(l1(x_t) + r1(h_{t-1}))$ The output can be calculated: $y_t = l2(h_t)$ This chain-like nature reveals that recurrent neural networks are intimately related to sequences and lists. They’re the natural architecture of neural network to use for such data. Recu...

Correct A Math Test with Deep Learning - Part I

Image
100-Masu 100-Masu (or 100-Math) is a popular math test for primary school student in Japan. It's just only a combination of one digit addition, multiplication, and division in 100 squares table. As you can see, the math test has a table that include 100 cells where students write their answers. Any cell that is left empty or with a wrong answer is to be counted towards the total number of mistakes and the tally is marked on the test sheet. The important in practicing 100-math calculations test is also in Prof. Hideo Kageyama's book: To do everyday Recording everyday With about 30 students in class, the teacher must spent so much time  everyday  to manually  correct these tests. So it's worth to implement a automatically correction. The Approach Our target is building a mobile app that can capture test sheet image, identify the multipliers in each table, identify the numbers written in the answer cells, compare against the ...

Intersection over Union (IoU) cho object detection

Image
    Nếu bạn từng đọc những tài liệu liên quan đến Object detection, ắt hẳn bạn đã bắt gặp khái niệm Intersection over Union (IoU). Hôm nay chúng ta sẽ cùng tìm hiểu thêm về nó.     Bài viết này được lược dịch từ blog post của  Adrian Rosebrock . Khuyến khích bạn nên đọc bài gốc để ủng hộ và đặt câu hỏi (nếu muốn) cho tác giả. INTERSECTION OVER UNION (IOU) LÀ GÌ?    (Đầu tiên, Intersection là phần Giao, trong khi Union là phần ...Hợp, nên trong bài viết này sẽ không dịch khái niệm IoU sang tiếng Việt, mong các bạn thông cảm!)    Intersection over Union là chỉ số đánh giá được sử dụng để đo độ chính xác của Object detector trên tập dữ liệu cụ thể. Chúng ta hay gặp chỉ số này trong các Object Detection Challenge, dạng như  PASCAL VOC challenge .     Bạn sẽ thường thấy IoU được sử dụng để đánh giá performance của các bộ object detector HOG + Linear SVM và Convolutional Neural Network (R-CNN, FasterR-CNN,...

YOLO: You Only Look Once

Image
“You only live once, but if you do it right, once is enough.” ― Mae West     Sự phát triển của mạng neural đang dần làm hiện thực hoá khái niệm chúng ta vẫn thường gọi là Computer Vision -  Thị giác máy tính . Tuy nhiên, tại thời điểm ban đầu, việc sử dụng Neural Network vẫn còn gặp nhiều khó khăn. Khi bạn muốn phát hiện ra object trong một bức ảnh, sau đó đánh nhãn cho object đó, các phương pháp lúc bấy giờ quá chậm để phục vụ trong real-time, hoặc đòi hỏi thiết bị mạnh mẽ, đắt đỏ...     ... cho đến khi YOLO ra đời. YOLO và sau này là YOLOv2 có khả năng gán nhãn cho toàn bộ object trong khung hình với chỉ duy nhất một operation. Có thể nói YOLO đã xây dựng một hướng tiếp cận đầu tiên giúp đưa Object detection thực sự khả thi trong cuộc sống. You only look once, but if your network does it right, once is enough. YOLO - YOU ONLY LOOK ONCE     Original paper:  https://arxiv.org/abs/1506.02640     Những lợi thế của Y...

Within Convolutional Layer - Phần 2 (Kết): Backpropagation

Image
Ở bài viết trước, chúng ta đã nói đến Connections cutting, Weights sharing và Convolution tại Forward pass. Trong phần này sẽ chủ yếu diễn giải các công thức, thuật toán được sử dụng để thực hiện Backpropagation tại Convolutional Layer. Nhắc lại về Forward pass Như đã nói ở phần I về Convolution operator, công thức tính output Y sau bước convolution input X với kernel W (kích thước $2k+1$) có thể viết thành: $\Large Y = X \star W + b$ $ b$ là bias. Tại mỗi điểm $ y_{i,j} \in Y$: $\LARGE y_{i,j} = \sum\limits_{m=-k}^{k}\sum\limits_{n=-k}^{k}x_{i-m,j-n}w_{i,j} + b$ hay: $\LARGE y_{i,j} = \sum\limits_{m=i-k}^{i+k}\sum\limits_{n=j-k}^{j+k}x_{m,n}w_{i-m,j-n} + b$ BACKPROPAGATION Nếu các bạn đã biết về Backpropagation ở Linear layer, thì cách tiếp cận với Convolutional layer cũng hoàn toàn tương tự.  Mục tiêu của quá trình lan truyền ngược là tính toán sự tham gia đóng góp lỗi vào hàm mất mát $L$ của mỗi layer, từ đó tối ưu các trọng số của những layer này nhằm ...

Within Convolutional Layer - Phần 1: Connections cutting, Weights sharing

Image
Convolutional Neural Network (CNN) là một biến thể dựa trên cảm hứng về sinh học của mô hình Multilayer Perceptron (MLP), được thiết kế mô phỏng hành vi của phần vỏ não điều khiển thị giác. CNN gần như đã khắc phục những khuyết điểm của kiến trúc MLP bằng cách khai thác sự tương quan không gian địa lý mạnh mẽ hiện diện trong các hình ảnh tự nhiên. - Wikipedia . Series này sẽ đề cập chủ yếu đến một số vấn đề của layer quan trọng nhất trong CNN - Convolutional Layer và đôi điều vài người vẫn còn hiểu lầm. Nếu bạn chưa biết về CNN, bạn được khuyến khích nên tìm hiểu tại đây trước khi bắt đầu bài viết này. Từ Multilayer Perceptron đến Convolutional Neural Network Tất nhiên là CNN phức tạp với nhiều loại layer, activation function hơn hẳn so với MLP, và cũng "sinh học" hơn. Tuy nhiên có rất nhiều sự tương đồng giữa các layer của MLP với Convolutional Layer. Multilayer Perceptron Convolutional layer Nhìn có vẻ không giống nhau lắm nhỉ, nhưng Conv-layer là p...

Giới thiệu về Generative Adversarial Networks (GANs)

Image
“… (GANs) and the variations that are now being proposed is the most interesting idea  in the last 10 years in ML…”  Tạm dịch: “… GAN cùng các biến thể của nó được đề xuất là ý tưởng thú vị nhất  về Machine Learning trong vòng mười năm qua...”  - Yann LeCun, giám đốc Facebook AI Research.  Nếu bạn chưa từng nghe về Generative Adversarial Networks, thì bạn đã bỏ qua chủ đề (có lẽ vẫn còn là) hot nhất của Deep Learning trong những năm gần đây. Nhưng yên tâm vì hôm nay bạn sẽ được lướt qua vài điều về nó. Đôi nét giới thiệu Neural Network đã tạo ra một bước tiến vượt bậc, cung cấp khả năng nhận diện hình ảnh và âm thanh ở một cấp độ có thể so sánh với con người . Cùng với đó là việc hiểu được ngôn ngữ tự nhiên với độ chính xác khá tốt. Các model sử dụng Neural Network trước đây có thể ngay lập tức nhận dạng một chú mèo trong một bức ảnh, thông qua việc học và phân tích hàng trăm, thậm chí hàng ngàn, chục ngàn bức ảnh về loài mèo. Nhưng...