Posts

Image
“Machine learning, những thuật toán cơ bản” Phần 1 : Linear Regression và cách hoạt động của nó        Đây là bài viết đầu tiên của mình trong chuỗi bài mà mình sẽ viết về “ Machine learning, những thuật toán cơ bản ”. Ở  bài viết lần này mình sẽ nói về cách hoạt động của thuật toán Linear Regression, những ứng dụng của nó, tại sao là Linear Regression chứ không phải thuật toán nào khác?         Linear Regression hay cách “báo đài” hay nói là “hồi quy tuyến tính” là một trong những chủ đề nổi tiếng nhất trong thống kê và đặc biệt trong Machine Learning. Nổi tiếng đồng nghĩa rằng bài viết về nó là rất nhiều, có rất nhiều những bài viết rất chi tiết nhưng đôi khi lại mang đến sự “quá tải” cho người đọc, ở bài viết này mình sẽ viết ngắn gọn và dễ hiểu nhất cho người đọc.         Trước khi đến với định nghĩa rõ ràng về Linear Regression chúng ta hãy nói về 1 ví dụ mà bạn rất hay gặp trong cuộc sống: Ta có ngôi nhà x1 có diện tích là y1 (m2) được bán với giá là s1(đ) và nếu chúng

Triển khai model Deep Learning trên Edge Computing phần I

Image
Chào mừng các bạn đến với blog hướng dẫn triển khai model Deep Learning trên Edge Computing phần I. Trong bài này, mình sẽ hướng dẫn các bạn về các khái niệm và những bước cần thiết thực hiện được tiêu đề của Blog. Bắt đầu thôi nào. Edge Computing    Chúng ta đã nghe khá nhiều về Cloud Computing. Đó là hình thức tập trung dữ liệu và tính toán trên các Cloud. Tuy nhiên, với lượng dữ liệu khổng lồ và bùng nổ như hiện nay, việc xây dựng các Cloud đủ mạnh để xử lý được dữ liệu trong thời gian thực ngày càng khó khẳn và phức tạp hơn. Một khái niệm mới được đưa ra để hỗ trợ cho Cloud Computing và đó chính là Edge Computing. Edge Computing hay tính toán cạnh (hoặc tính toán biên) là việc dữ liệu sẽ được xử lý một phần ngay tại chỗ hoặc trong các cụm nhỏ trước khi được tập trung tại các trung tâm lớn hơn. Hãy xem hình dưới đây để hiểu về cách Edge Computing hoạt động. Minh họa Edge Computing ( nguồn ). Một xu hướng mới hiện nay trong việc áp dụng Deep Learning vào thực tế là t

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. Recurrent Neu

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 expected answers, and

Inception modules

Image
    Nếu bạn là một người thường xuyên cập nhật các công nghệ AI, chắc hẳn bạn đã biết rằng Google vừa công bố một mô hình với tên gọi  Inception v3  với Tensorflow. Hình 1. Mô hình Inception v3 ( image source )     Bạn có thể sử dụng mô hình này bằng cách train lại những layer cuối tùy thuộc vào yêu cầu bài toán phân loại của bạn. Nếu bạn thực sự hứng thú với việc này, hãy xem bài  hướng dẫn  rất thú vị sau của Siraj Raval. Tên gọi Inception v3 trùng với tên module Inception mà nó sử dụng, với những mô hình nhỏ hơn bên trong mô hình lớn hơn. Một cấu trúc Inception giống với nó được sử dụng trong mô hình GoogleLeNet năm 2014: Hình 2. Kiến trúc GoogleLeNet với 9 module Inception ( image source )     Trong bài viết này, chúng ta sẽ bàn luận kỹ hơn về Inception modules, giải thích chi tiết hơn theo như bài báo gốc: " Going Deeper with Convolutions ". Bài viết này đòi hỏi bạn phải có nền tảng hiểu biết cơ bản về mạng neural tích chập. Nếu không, chúng tôi khuyến kh

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, v.v...). Tuy nhiên hãy ghi nhớ rằng đối với IoU thì sử dụ