Bắt đầu với Machine Learning thông qua Tensorflow (Phần I.I)
Machine Learning
9
tensorflow
4
White

Trần Đức Tâm viết ngày 02/07/2017

Phần I.I Machine Learning là gì?

TL;DR

Mình nghiên cứu Machine Learning[Coursera] bắt đầu từ khoảng một năm về trước, mất khoảng sáu tháng để tự luyện lại bản thân kiến thức toán từ lớp 9 để làm quen lại với các dạng toán từ giải phương trình đến đạo hàm, tích phân... Cảm giác đó là một quãng thời gian tuy không hẳn là phí phạm lắm nhưng kết quả đạt được để hiểu về Machine Learning lại không nhiều. Nhất là với một lập trình viên Mobile như mình. Vậy nên mình tổng hợp lại một vài kiến thức cơ bản của Machine Learning dưới góc nhìn của một người ứng dụng lại các thành tựu có sẵn nhằm giải quyết các bài toán Machine Learning dành cho bạn nào cũng mới bắt đầu giống mình mà đã quên đi khá nhiều kiến thức toán phổ thông.

Để theo dõi bài viết được hiệu quả, cách tốt nhất là kết hợp đọc cùng với bai tài liệu sau:

Ngoài ra thì blogs của Huy Trần và bạn Khánh Nguyễn cũng là những blogs rất đáng được tham khảo.

Machine Learning là gì?

Theo như khóa học Machine Learning trên Coursera thì khái niệm Machine Learning có hai định nghĩa cổ đại và hiện đại.

Định nghĩa cổ đại:

Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed.(Machine Learning là một ngành học nghiên cứu về cách giúp cho máy tính điện tử có được khả năng có thể học tập mà không cần phải được lập trình một cách tỉ mỉ trước đó.)

(Arthur Samuel – 1959)

Theo như định nghĩa này thì mình cảm thấy là nó giống như việc dịch sát nghĩa từ Machine Learning vậy. Hoàn toán bị bối rồi về việc Machine Learning là gì? Làm sao để thực hành Machine Learning. Vậy nên một định nghĩa khác mở hơn được đưa ra giúp cho mọi người có cái nhìn dễ dàng hơn về Machine Learning.

Định nghĩa hiện đại:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.(Một chương trình máy tính được gọi là học cách thực thi 1 nhóm nhiệm vụ tương đồng T thông qua trải nghiệm E dựa trên tiêu chí đánh giá P khi kết quả thực thi các nhiệm vụ trong nhóm T của chương trình đó, tăng lên theo trải nghiệm E thông qua đánh giá bằng tiêu chí P.)

(Tom Mitchell – 1998)

Dưới góc nhìn của Machine Learning, mọi bài toán đều có input và output, ở giữa của quy trình đó là một hàm. Hàm là một khái niệm toán học khá quen thuộc với chúng ta. Hàm là một tập hợp các quy tắc được dùng để các phần tử ở tập nguồn đến các phần tử ở tập đích sao cho mỗi một phần tử ở tập nguồn chỉ có một và chỉ một phần tử ở tập đích. Trong đó, một bộ phận nhỏ của hàm, khi tất cả các phần tử của cả hai tập đều là dạng số học, người ta gọi đó là hàm sô.

Hình 1.1: Hàm số
Hình 1.1: Hàm số

Cùng với sự phát triển của Computer Vision[Wiki], nhiệm vụ của người làm Machine Learning ở một mức cơ bản nào đó là giúp máy tính điện tử tìm ra được hàm quan hệ giữa tập input và tập output để từ đó máy tính có khả năng cải tiến hiệu xuất P của nhiệm vụ T thông qua trải ngiệm E. Hàm này được gọi là Hypothesis[Wiki] hoặc Model[Wiki]

Cũng theo khóa học Machine Learning trên Coursera thì Machine Learning chia các bài toán ra làm hai loại chính là Supervised Learning(Học có giám sát)[SL]Un-Supervised Learning(Học không có giám sát)[USL].

Supervised Learning

Học có giám sát là việc có sẵn một tập nguồn và một tập đích tương ứng để làm cơ sở xây dựng ra model mong muốn. Tập hợp kết hợp bởi hai tập này được gọi là tập Train[Wiki]. (Test sets và validate sets không được đề cập đến trong khuôn khổ bài viết này). Theo thời gian, khi đưa bài toán vào áp dụng thực tế, dữ liệu mới lại được sử dụng để train(Huấn luyện) lại nhằm cải tiến model hiện tại. Điều này chính là mô tả cho khái niệm học có giám sát.

Các thuật toán nằm trong nhóm các bài toán học có giám sát được chia nhỏ thành hai phần dựa trên đặc tính của tập đích trong tập train.

Classification

Khi dữ liệu của tập đích là một nhóm hữu hạn và có thể labled(Gắn nhãn) được, bài toán được xếp vào dạng classification(Bài toán phân loại). Ví dụ hay được sử dụng cho bài toán dạng này là bài toán gắn nhãn xem một email có phải là spam hay không, hoặc phân loại giữa cam và táo hay phân biệt chữ viết tay...

Hình 1.2: Hàm số classification

Regression

Dạng còn lại được gọi là regression(Bài toán hồi quy). Hồi quy là một thuật ngữ rất khó hiểu. Khi tìm hiểu cả bằng tiếng Trung và tiếng Nhật thì từ này trùng hợp là đều được dịch là hồi quy(回帰) cả. Thì ra là những cái gì có tính liên tục và tiếp nối với nhau thì người ta gọi là là hồi quy. Vậy khi tập đích trong tập train là một tập dữ liệu có dạng liên tục không thể phân thành nhóm mà là một dữ liệu cụ thể thì bài toán được xếp vào dạng hồi quy. Bài toán tiêu biểu cho dạng này thường được ví dụ là tính toán giá cả của sản phẩm dựa trên thông số trước đó, hoặc dự đoán biến động tài chính...

Hình 1.3: Hàm số regression
Hình 1.3: Hàm số regression

Lưu ý: Có những bài toán, khái niệm hồi quy và phân loại khá khó xác định. Ví dụ như bài toán về dự đoán tuổi. Nếu ta coi tuổi là một đại lượng liên tục, bài toán thuộc về dạng hồi quy. Tuy nhiên ở một mặt khác khi coi tuổi là một số nguyên dương lớn hơn 0 và không vượt quá 150 thì ta lại quy bài toán về dạng phân loại.[Machine learning cơ bản]

Un-Supervised Learning

Được gọi là học không giám sát, chúng ta không hề có tập đích mà chỉ có tập nguồn, khi dữ liệu đủ lớn, chúng ta mặc dù không thể dự đoán được tấp đích nhưng bù lại thì có thể thực hiện phân nhóm hay làm giảm độ phức tạp của dữ liệu. Điều này đặc biệt có ích trong việc lưu trữ hoặc sử lí dữ liệu trong tương lai (Đưa về bài toán học có giám sát khi đã có dữ liệu thực tế) Các bài toán học không giám sát cũng được chia làm hai loại dựa vài tập nguồn của chúng.

Clustering

Với bài toán dạng này, ta buộc phải có một tập hợp các categories cho trước. Dữ liệu nguồn sẽ được Clustering(Bài toán gom nhóm) dựa trên các yếu tố có trong tập hợp categories cho trước. Điều này có vẻ tương tự với bài toán ở dạng Classification bị bỏ đi tập đichs nhưng trên thực tế thì không chính xác. Ví dụ như với bài toán phân loại email là spam nhưng hoàn toàn không có bất kìa ai đánh dấu mail là spam hay không. Việc phân loại lúc này đơn thuần chỉ dự trên những nhóm email được cho là giống nhau về cách đặt tên, nguồn gửi, tần suất xuất hiện, nội dung...

Dimensionality reduction

Bài toán ở dạng này được gọi là Dimensionality reduction(Bài toán giảm chiều của dữ liệu). Bài toán ở dạng này không được quy về các dạng trên mà được thực hiện dưới hình thức làm giảm đi số lượng các biến số đầu vào nhằm hạn chế độ phức tạp của bài toán. Hãy tưởng tượng với bài toán

Hình 1.4: Sơ đồ lựa chọn thuật toán
Hình 1.4: Sơ đồ lựa chọn thuật toán

Tổng kết

Trên đây là một số khái niệm mở đầu khá quan trọng của Machine Learning. Để đi sâu hơn vào những khái niệm này, các bạn có thể tìm hiểu thêm trong phần Readmore bên dưới. Lượng khái niệm được đề cập tới chỉ mang tính chất giới thiệu từ khóa tra cứu cũng như làm tiền đề cho các bài viết tiếp theo.

Readmore

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Trần Đức Tâm

4 bài viết.
47 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
21 9
Phần I.2 Tensorflow và bài toán Hồi quy đơn giản đầu tiên TL;DR Qua bài viết trước, chúng ta đã biết được đến sự tồn tại của một vài khái niệm c...
Trần Đức Tâm viết 8 tháng trước
21 9
White
1 2
kotlin fun main(args: Array) { find("a") find("b") find("c") find("d") } val a : MutableList = mutableListOf() fun find(name: String, a...
Trần Đức Tâm viết 9 tháng trước
1 2
Bài viết liên quan
White
21 9
Phần I.2 Tensorflow và bài toán Hồi quy đơn giản đầu tiên TL;DR Qua bài viết trước, chúng ta đã biết được đến sự tồn tại của một vài khái niệm c...
Trần Đức Tâm viết 8 tháng trước
21 9
White
9 1
Document/Text classification là 1 phần điển hình và quan trọng trong supervised machine learning. Phân loại các tài liệu(bài báo, tạp chí, trang we...
T.T.T viết 15 ngày trước
9 1
White
12 4
Bản quyền thuộc Fsoft Potato Tech Mag Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Chuyện xưa kể lại rằng, ở một công ty...
Giaosucan viết 6 tháng trước
12 4
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
47 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!