Cộng đồng chia sẻ tri thức Lib24.vn

Machine Learning cơ bản

f8f8339001a14871969e45cdab916893
Gửi bởi: Khoa CNTT - HCEM 22 tháng 4 2021 lúc 10:34:18 | Được cập nhật: hôm kia lúc 23:04:42 | IP: 10.1.29.116 Kiểu file: PDF | Lượt xem: 435 | Lượt Download: 8 | File size: 24.502769 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

< xmlns="http://www.w3.org/1999/x" lang="" xml:lang="">

 Hữu Tiệp 

Machine

 Learning 

 bản 

machinelearningcoban

.com

Vũ Hữu Tiệp

Machine Learning cơ bản

Order ebook tại

https:// machinelearningcoban.com/ ebook/

Blog:

https:// machinelearningcoban.com

Facebook Page:

https:// www.facebook.com/ machinelearningbasicvn/

Facebook Group:

https:// www.facebook.com/ groups/ machinelearningcoban/

Interactive Learning:

https:fundaml.com

Last update:

January 19, 2018

Chương 0

Lời tác giả

Những năm gần đây, trí tuệ nhân tạo (artificial intelligence–AI ) nổi lên như một bằng chứngcủa cuộc cách mạng công nghiệp lần thứ tư (1–động cơ hơi nước, 2–năng lượng điện, 3–côngnghệ thông tin). Trí tuệ nhân tạo đã và đang trở thành thành phần cốt lõi trong các hệthống công nghệ cao. Nó đã len lỏi vào hầu hết các lĩnh vực trong đời sống mà có thể chúngta không nhận ra. Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnhcủa Facebook; trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợiý phim của Netflix, hệ thống dịch đa ngôn ngữ Google Translate, máy chơi cờ vây AlphaGovà gần đây là AlphaGo Zero của Google DeepMind, v.v., chỉ là một vài ứng dụng nổi bậttrong vô vàn những ứng dụng của trí tuệ nhân tạo.

Học máy (machine learning–ML) là một tập con của trí tuệ nhân tạo. Nó là một lĩnh vựcnhỏ trong khoa học máy tính, có khả năng tự học hỏi dựa trên dữ liệu được đưa vào màkhông cần phải được lập trình cụ thể (Machine Learning is the subfiled of computer science,that “gives computers the ability to learn without being explicitly programmed”–Wikipedia).

Những năm gần đây, sự phát triển của các hệ thống tính toán cùng với lượng dữ liệu khổnglồ được thu thập bởi các hãng công nghệ lớn đã giúp machine learning tiến thêm một bướcdài. Một lĩnh vực mới được ra đời được gọi là học sâu (deep learning–DL). Deep learning đãgiúp máy tính thực thi những việc tưởng chừng như không thể vào mười năm trước: phânloại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọngnói và chữ viết của con người, giao tiếp với con người, chuyển đổi ngôn ngữ, hay thậm chícả sáng tác văn thơ hay âm nhạc

1

.

Mối quan hệ AI-ML-DL

Deep learning là một tập con của machine learning. Machine learning là một tập concủa artificial intelligence (xem Hình

0.1

).

1

Đọc thêm: 8 Inspirational Applications of Deep Learning (

https:// goo.gl/ Ds3rRy

)

CHƯƠNG 0. LỜI TÁC GIẢ

ii

Hình 0.1: Mối quan hệ giữa artificial intelligence, machine learning, và deep learning (NguồnWhat’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning? –

https:// goo.gl/ NNwGCi

).

0.1 Mục đích của cuốn sách

Những phát triển thần kỳ của trí tuệ nhân tạo dẫn đến nhu cầu cao về nhân lực nhữngngành khoa học dữ liệu, machine learning, và các ngành liên quan trên toàn thế giới cũngnhư ở Việt Nam trong những năm sắp tới. Đó cũng là động lực để tôi bắt đầu viết blogMachine Learning cơ bản (

https:// machinelearningcoban.com

từ đầu năm 2017. Tính tới

thời điểm tôi viết những dòng này, trang blog đã có hơn 650 ngàn lượt ghé thăm. Facebookpage Machine Learning cơ bản (

https:// goo.gl/ wyUEjr

của blog cũng đã có hơn 10 nghìn

lượt likes, Forum Machine Learning cơ bản (

https:// goo.gl/ gDPTKX

có gần 8 nghìn thành

viên. Trong quá trình viết blog và duy trì các trang Facebook, tôi nhận được rất nhiều nhữngủng hộ của bạn đọc về tinh thần cũng như vật chất. Ngoài ra, rất nhiều bạn đọc đã khuyếnkhích tôi tổng hợp những kiến thức trên blog lại thành một cuốn sách cho cộng đồng nhữngngười làm machine learning sử dụng tiếng Việt. Những sự ủng hộ và lời động viên đó là độnglực lớn cho tôi bắt tay vào thực hiện và hoàn thành cuốn sách này.

Lĩnh vực machine learning và deep learning là cực kỳ rộng lớn và có nhiều nhánh nhỏ. Đểđi sâu vào từng nhánh, một cuốn sách chắc chắn không thể bao quát được mọi vấn đề. Mụcđích chính của cuốn sách này là cung cấp cho các bạn những khái niệm, kỹ thuật chung và

Machine Learning cơ bản

https:// machinelearningcoban.com

iii

CHƯƠNG 0. LỜI TÁC GIẢ

các thuật toán cơ bản nhất của machine learning. Từ đó, bạn đọc muốn đi sâu vào từng vấnđề cụ thể có thể tìm đọc thêm các tài liệu, cuốn sách, và khoá học liên quan.

Hãy luôn nhớ rằng đơn giản trước hết. Khi bắt tay vào giải quyết một bài toán machinelearning hay bất cứ bài toán nào, chúng ta nên bắt đầu từ những thuật toán đơn giản nhất.Không nên nghĩ rằng chỉ có những thuật toán phức tạp mới có thể giải quyết được vấn đề.Những thuật toán phức tạp thường yêu cầu độ tính toán cao và nhạy cảm với cách chọncác tham số đầu vào. Thêm vào đó, những thuật toán đơn giản giúp chúng ta sớm có mộtmô hình tổng quát cho mỗi bài toán. Kết quả của các thuật toán đơn giản, thường được gọilà baseline, cũng giúp chúng ta có cái nhìn ban đầu về sự phức tạp của mỗi bài toán. Việccải thiện kết quả sẽ được dần thực hiện ở các bước sau. Cuốn sách này sẽ giúp các bạn cónhững cái nhìn đầu tiên và các hướng giải quyết cho các bài toán machine learning. Để cócác sản phẩm thực tiễn, chúng ta sẽ phải học hỏi và thực hành thêm rất nhiều.

0.2 Hướng tiếp cận của cuốn sách

Để giải quyết mỗi bài toán machine learning, chúng ta cần chọn một mô hình phù hợp. Môhình này được mô tả bởi bộ các tham số, có thể lên tới cả triệu tham số, mà chúng ta cầnđi tìm. Thông thường, bộ các tham số này được tìm bằng cách giải một bài toán tối ưu.

Khi viết về các thuật toán machine learning, tôi sẽ bắt đầu bằng những ý tưởng trực quan,theo sau bởi một mô hình toán học mô tả ý tưởng đó. Các tham số mô hình được tìm bằngcách tối ưu mô hình toán học đó. Các suy luận toán học và các ví dụ mẫu trên Python ởcuối mỗi bài sẽ giúp bạn đọc hiểu rõ hơn về nguồn gốc, ý nghĩa, và cách sử dụng mỗi thuậttoán. Xen kẽ giữa các phần về các thuật toán machine learning, tôi cũng sẽ giới thiệu cáckỹ thuật tối ưu cơ bản, với hy vọng giúp bạn đọc hiểu rõ hơn về bản chất của vấn đề.

0.3 Đối tượng của cuốn sách

Cuốn sách được thực hiện hướng đến nhiều nhóm độc giả khác nhau. Nếu bạn không thựcsự muốn đi sâu vào phần toán, bạn vẫn có thể tham khảo source code và cách sử dụng cácthư viện. Nhưng để sử dụng các thư viện một cách hiệu quả, bạn cũng cần hiểu nguồn gốccủa mô hình và ý nghĩa của các tham số. Nếu bạn thực sự muốn tìm hiểu nguồn gốc, ý nghĩacủa các thuật toán, bạn có thể học được nhiều điều từ cách xây dựng và tối ưu các mô hình.Phần tổng hợp các kiến thức toán cần thiết trong Phần

I

sẽ là một nguồn tham khảo súc

tích bất cứ khi nào bạn có thắc mắc về các dẫn giải toán học trong sách

2

Phần

VII

được

dành riêng để nói về tối ưu lồi–một mảng rất quan trọng trong tối ưu, phù hợp với các bạnthực sự muốn đi sâu thêm về tối ưu.

Rất nhiều hình vẽ trong cuốn sách được vẽ dưới dạng vector graphics (độ phân giải rất cao),có thể được dùng trong các bài giảng hoặc thuyết trình. Các kiến thức trong sách cũng đượcsắp xếp theo thứ tự từ dễ đến khó, vì vậy cuốn sách cũng được hy vọng là một cuốn giáotrình cho các khoá học machine learning tiếng Việt.

2

Bạn đọc chưa quen với nhiều khái niệm toán học trong phần này có thể đọc từ Phần

II

và quay lại bất cứ khi nào

bạn gặp khó khăn.

Machine Learning cơ bản

https:// machinelearningcoban.com

CHƯƠNG 0. LỜI TÁC GIẢ

iv

Các dẫn giải toán học được xây dựng phù hợp với chương trình toán phổ thông và đại học ởViệt Nam. Các từ khoá khi được dịch sang tiếng Việt đều dựa trên những tài liệu tôi đượchọc trong nhiều năm học toán tại Việt Nam. Các thuật ngữ tiếng Anh cũng thường xuyênđược sử dụng, với hy vọng giúp bạn đọc dần làm quen với các tài liệu tiếng Anh, và giúpcác bạn học đại học ở nước ngoài có thể tiếp cận. Phần cuối cùng của sách có mục Indexcác thuật ngữ quan trọng bằng tiếng Anh và nghĩa tiếng Việt đi kèm nếu tôi tìm được cáchdịch phù hợp.

0.4 Yêu cầu về kiến thức

Để có thể bắt đầu đọc cuốn sách này, bạn cần có một kiến thức nhất định về đại số tuyếntính, giải tích ma trận, xác suất thống kê, và kỹ năng lập trình.

Phần

I

của cuốn sách ôn tập lại các kiến thức toán quan trọng cho machine learning. Bất

cứ khi nào bạn đọc gặp khó khăn về toán, bạn được khuyến khích đọc lại các chương trongphần này.

Ngôn ngữ lập trình được sử dụng trong cuốn sách là Python. Lý do tôi sử dụng ngôn ngữnày vì đây là một ngôn ngữ lập trình miễn phí, có thể được cài đặt dễ dàng trên các nền tảnghệ điều hành khác nhau. Quan trọng hơn, có rất nhiều các thư viện hỗ trợ machine learningcũng như deep learning được viết cho Python. Có hai thư viện python chính thường đượcsử dụng trong cuốn sách là numpy và scikit-learn. Numpy (

http:// www.numpy.org/

là một

thư viện phổ biến giúp xử lý các phép toán liên quan đến các mảng nhiều chiều, với các hàmgần gũi với đại số tuyến tính. Nếu bạn đọc chưa quen thuộc với numpy, bạn có thể tham giamột khoá học ngắn miễn phí trên trang web kèm theo cuốn sách này (

https:// fundaml.com

).

Bạn sẽ được làm quen với cách xử lý các mảng nhiều chiều với nhiều ví dụ và bài tập thựchành trực tiếp trên trình duyệt. Các kỹ thuật xử lý mảng trong cuốn sách này đều đượcđề cập tại đây. Scikit-learn, hay sklearn, (

http:// scikit-learn.org/

là một thư viện chứa rất

nhiều các thuật toán machine learning cơ bản và rất dễ sử dụng. Tài liệu của scikit-learncũng là một nguồn chất lượng cho các bạn làm machine learning. Scikit-learn sẽ được dùngtrong cuốn sách như một cách kiểm chứng lại các kết quả mà chúng ta thực hiện dựa trênsuy luận toán học cũng như lập trình thông qua numpy.

Tất nhiên, các thư viện machine learning hiện nay rất phổ biến và có những bạn có thể tạora sản phẩm bằng cách chỉ sử dụng những thư viện này mà không cần nhiều kiến thức toán.Tuy nhiên, cuốn sách này không hướng tới việc sử dụng các thư viện sẵn có mà không hiểubản chất đằng sau của chúng. Việc sử dụng các thư viện cũng yêu cầu những kiến thức nhấtđịnh về việc lựa chọn và điều chỉnh tham số mô hình.

0.5 Source code đi kèm

Toàn bộ source code trong cuốn sách có thể được tìm thấy tại

https:// github.com/ tiepvupsu/

ebookML_src

Các file có đuôi .ipynb là các file chứa code (Jupyter notebook). Các file có

đuôi .pdf, .png là các hình tạo được từ file .ipynb.

Machine Learning cơ bản

https:// machinelearningcoban.com

v

CHƯƠNG 0. LỜI TÁC GIẢ

0.6 Bố cục của cuốn sách

Cuốn sách này được chia thành 8 phần và sẽ tiếp tục được cập nhật:

Phần

I

ôn tập lại cho bạn đọc những kiến thức quan trọng trong đại số tuyến tính, giải tích

ma trận, xác suất, và hai phương pháp phổ biến trong việc ước lượng tham số cho các môhình machine learning thống kê.

Phần

II

giới thiệu các khái niệm cơ bản trong machine learning, kỹ thuật xây dựng vector

đặc trưng cho dữ liệu, một mô hình machine learning cơ bản–linear regression, và một hiệntượng cần tránh khi xây dựng các mô hình machine learning.

Phần

III

giúp các bạn làm quen với các mô hình machine learning rất trực quan, không yêu

cầu nhiều kiến thức toán phức tạp. Qua đây, bạn đọc sẽ có cái nhìn đầu tiên về việc xâydựng các mô hình machine learning.

Phần

IV

đề cập tới một lớp các thuật toán machine learning phổ biến nhất–neural networks,

là nền tảng cho các mô hình deep learning phức tạp hiện nay. Phần này cũng giới thiệu mộtkỹ thuật cơ bản và hữu dụng trong việc giải quyết các bài toán tối ưu không ràng buộc.

Phần

V

giới thiệu về các kỹ thuật thường dùng trong các hệ thống khuyến nghị sản phầm.

Phần

VI

giới thiệu các kỹ thuật giảm chiều dữ liệu.

Phần

VII

mang lại cho các bạn một cái nhìn bao quát hơn về tối ưu, đặc biệt là tối ưu lồi.

Các bài toán tối ưu lồi có ràng buộc cũng được giới thiệu trong phần này.

Phần

VIII

giới thiệu các thuật toán phân lớp dựa trên ý tưởng của support vector machine.

0.7 Các lưu ý về ký hiệu

Các ký hiệu toán học trong sách được mô tả ở Bảng

0.1

và đầu Chương

1

Các khung với

font chữ có chiều rộng các ký tự như nhau được dùng để chứa các đoạn source code.

text in a box with constant width represents source codes.

Các đoạn ký tự với

constant width, deep red,

’string, dark green’

được dùng để chỉ các

biến, hàm số, chuỗi, v.v., trong các đoạn code.

Đóng khung và in nghiêng

Các khái niệm, định nghĩa, định lý, và lưu ý quan trọng được đóng khung và in nghiêng.Ký tự phân cách giữa phần nguyên và phần thập phân của các số thực là dấu chấm,‘.’, thay vì dấu phẩy, ‘,’, như trong các tài liệu tiếng Việt khác. Cách làm này thốngnhất với các tài liệu tiếng Anh và các ngôn ngữ lập trình.

Machine Learning cơ bản

https:// machinelearningcoban.com

CHƯƠNG 0. LỜI TÁC GIẢ

vi

0.8 Tham khảo thêm

Có rất nhiều những cuốn sách, khoá học, website hay về machine learning cũng như deeplearning, trong đó, có một số mà tôi muốn đặc biệt nhấn mạnh:

0.8.1 Khoá học

1. Khóa học Machine Learning của Andrew Ng trên Coursera (

https:// goo.gl/ WBwU3K

).

2. Khoá học mới Deep Learning Specialization cũng của Andrew Ng (

https:// goo.gl/

ssXfYN

).

3. Các khoá CS224n: Natural Language Processing with Deep Learning (

https:// goo.gl/

6XTNkH

); CS231n: Convolutional Neural Networks for Visual Recognition (

http://

cs231n.stanford.edu/

); CS246: Mining Massive Data Sets (

https:// goo.gl/ TEMQ9H

)

của Stanford.

4. Introduction to Computer Science and Programming Using Python (

https:// goo.gl/

4nNXvJ

của MIT.

0.8.2 Sách

1. C. Bishop, Pattern Recognition and Machine Learning (

https:// goo.gl/ pjgqRr

), Springer,

2006 [

Bis06

].

2. I. Goodfellow et al., Deep Learning (

https:// goo.gl/ sXaGwV

), MIT press, 2016 [

GBC16

].

3. J. Friedman et al., The Elements of Statistical Learning (

https:// goo.gl/ Qh9EkB

),

Springer, 2001 [

FHT01

].

4. Y. Abu-Mostafa et al., Learning from data (

https:// goo.gl/ SRfNFJ

), AMLBook New

York, 2012 [

AMMIL12

].

5. S. JD Prince, Computer Vision: Models, Learning, and Inference (

https:// goo.gl/ 9Fchf3

),

Cambridge University Press, 2012 [

Pri12

].

6. S. Boyd et al., Convex Optimization (

https:// goo.gl/ NomDpC

), Cambridge university

press, 2004 [

BV04

].

Ngoài ra, các website Machine Learning Mastery (

https:// goo.gl/ 5DwGbU

), Pyimage-

search (

https:// goo.gl/ 5DwGbU

). Kaggle (

https:// www.kaggle.com/

), Scikit-learn (

http:

// scikit-learn.org/

cũng là các nguồn thông tin rất hữu ích.

Machine Learning cơ bản

https:// machinelearningcoban.com


Document Outline