1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

machine learning co ban

43 192 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 631,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mìnhkhông phải là một chuyên gia nghiên cứu, kinh nghiệm còn khá non nếu so với các giáo sư và kỹ sư đầu ngành nhưng mình rất muốn đem bộ môn này về giới thiệu với mọi người, nhất là các

Trang 1

1.11.21.31.3.11.3.21.3.31.3.41.3.51.3.61.3.71.3.81.41.4.11.4.2

Trang 2

Xin chào, mình là Nguyễn Xuân Khánh, một người đang học và nghiên cứu về machinelearning Lĩnh vực mình chuyên sâu cho đến bây giờ là natural language processing (gọi tắt

là NLP), tức là làm cho máy tính có khả năng hiểu được ngôn ngữ của con người Mìnhkhông phải là một chuyên gia nghiên cứu, kinh nghiệm còn khá non nếu so với các giáo sư

và kỹ sư đầu ngành nhưng mình rất muốn đem bộ môn này về giới thiệu với mọi người,

nhất là các bạn còn đang loay hoay tìm câu trả lời cho câu hỏi: học Tin học sau này có thể

làm được gì?

Cuốn sách này được viết nhằm đưa ra một trong rất nhiều câu trả lời cho câu hỏi trên Nộidung chủ yếu giới thiệu về một lĩnh vực thu hút rất nhiều sự chú ý trong vài năm gần đây,

machine learning.

Sách được đặt tên là "Machine Learning: mì, súp và công thức nấu" với ý tưởng là nếungười đọc hiểu được những thành tố cơ bản của machine learning và cách phối hợp giữachúng thì sẽ sáng tạo ra rất nhiều "món ngon" Mục đích chính của sách là nhằm giúp ngườiđọc có đọc nền tảng học thuật vững chắc trước khi đi sâu hơn vào nghiên cứu và sáng chế.Ngày 20/7/2016

Lời tựa

Trang 3

Machine learning gây nên cơn sốt công nghệ trên toàn thế giới trong vài năm nay Tronggiới học thuật, mỗi năm có hàng ngàn bài báo khoa học về đề tài này Trong giới côngnghiệp, từ các công ty lớn như Google, Facebook, Microsoft đến các công ty khởi nghiệpđều đầu tư vào machine learning Hàng loạt các ứng dụng sử dụng machine learning ra đờitrên mọi linh vực của cuộc sống, từ khoa học máy tính đến những ngành ít liên quan hơn

như vật lý, hóa học, y học, chính trị AlphaGo, cỗ máy đánh cờ vây với khả năng tính toán

trong một không gian có số lượng phần tử còn nhiều hơn số lượng hạt trong vũ trụ, tối ưuhơn bất kì đại kì thủ nào, là một trong rất nhiều ví dụ hùng hồn cho sự vượt trội của

machine learning so với các phương pháp cổ điển

Vậy thực chất, machine learning là gì?

Để giới thiệu về machine learning, mình xin dựa vào mối quan hệ của nó với ba khái niệmsau:

phim (như Terminator), nhằm gieo vào đầu người xem suy nghĩ rằng trí tuệ nhân tạo là một

phương thức nhân bản con người bằng máy móc Tuy nhiên, trong những bộ phim gần hơn

về đề tài này, ví dụ như Transcendence do Johny Depp vào vai chính, ta không thấy hình

ảnh của một con robot nào cả Thay vào đó là một bộ não điện toán khổng lồ chỉ huy hàngvạn con Nanobot, được gọi là Singularity Tất nhiên cả hai hình ảnh đều là hư cấu và giảtưởng, nhưng sự thay đổi như vậy cũng một phần nào phản ánh sự thay đổi ý niệm của conngười về AI AI bây giờ được xem như vô hình vô dạng, hay nói cách khác có thể mang bất

cứ hình dạng nào Vì nói về AI là nói về một bộ não, chứ không phải nói về một cơ thể, là

software chứ không phải là hardware

Trong giới hàn lâm, theo hiểu biết chung, AI là một ngành khoa học được sinh ra với mụcđích làm cho máy tính có được trí thông minh Mục tiêu này vẫn khá mơ hồ vì không phải aicũng đồng ý với một định nghĩa thống nhất về trí thông minh Các nhà khoa học phải định

nghĩa một số mục tiêu cụ thể hơn, một trong số đó là việc làm cho máy tính lừa được Turing

Machine learning là gì?

Trang 4

ngành khoa học máy tính hiện đại, nhằm phân biệt xem người đối diện có phải là người haykhông

AI thể hiện một mục tiêu của con người Machine learning là một phương tiện được kỳ vọng

sẽ giúp con người đạt được mục tiêu đó Và thực tế thì machine learning đã mang nhân loại

đi rất xa trên quãng đường chinh phục AI Nhưng vẫn còn một quãng đường xa hơn rấtnhiều cần phải đi Machine learning và AI có mối quan hệ chặt chẽ với nhau nhưng khônghẳn là trùng khớp vì một bên là mục tiêu (AI), một bên là phương tiện (machine learning).Chinh phục AI mặc dù vẫn là mục đích tối thượng của machine learning, nhưng hiện tạimachine learning tập trung vào những mục tiêu ngắn hạn hơn như:

1 Làm cho máy tính có những khả năng nhận thức cơ bản của con người như nghe,nhìn, hiểu được ngôn ngữ, giải toán, lập trình, …

1 Hỗ trợ con người trong việc xử lý một khối lượng thông tin khổng lồ mà chúng ta phảiđối mặt hàng ngày, hay còn gọi là Big Data

Big Data thực chất không phải là một ngành khoa học chính thống Đó là một cụm từ dân

gian và được giới truyền thông tung hô để ám chỉ thời kì bùng nổ của dữ liệu hiện nay Nócũng không khác gì với những cụm từ như "cách mạng công nghiệp", "kỉ nguyên phầnmềm" Big Data là một hệ quả tất yếu của việc mạng Internet ngày càng có nhiều kết nối.Với sự ra đời của các mạng xã hội nhưng Facebook, Instagram, Twitter, nhu cầu chia sẻthông của con người tăng trưởng một cách chóng mặt Youtube cũng có thể được xem làmột mạng xã hội, nơi mọi người chia sẻ video và comment về nội dung của video Để hiểuđược quy mô của Big Data, hãy xem qua những con số sau đây (tính đến thời điểm bàiviết):

1

Machine learning là gì?

Trang 5

đề đó Big Data chỉ thực sự bắt đầu từ khi chúng ta hiểu được gía trị của thông tin ẩn chứatrong dữ liệu, và có đủ tài nguyên cũng như công nghệ để có thể khai thác chúng trên quy

mô khổng lồ Và không có gì ngạc nhiên khi machine learning chính là thành phần mấu chốtcủa công nghệ đó Ở đây ta có một quan hệ hỗ tương giữa machine Learning và Big Data:machine learning phát triển hơn nhờ sự gia tăng của khối lượng dữ liệu của Big Data;

ngược lại, gía trị của Big Data phụ thuộc vào khả năng khai thác tri thức từ dữ liệu củamachine learning

Ngược dòng lịch sử, machine learning đã xuất hiện từ rất lâu trước khi mạng Internet ra đời

Một trong những thuật toán machine learning đầu tiên là thuật toán perceptron được phát

minh ra bởi Frank Rosenblatt vào năm 1957 Đây là một thuật toán kinh điển dùng để phânloại hai khái niệm Một ví dụ đơn gỉan là phân loại thư rác (tam gíac) và thư bình thường(vuông) Chắc các bạn sẽ khó hình dung ra được làm thế nào để làm được điều đó Đối vớiperceptron, điều này không khác gì với việc vẽ một đường thẳng trên mặt phẳng để phânchia hai tập điểm:

Những điểm tam giác và vuông đại diện cho những email chúng ta đã biết nhãn trước.Chúng được dùng để "huấn luyện" (train) perceptron Sau khi vẽ đường thẳng chia hai tậpMachine learning là gì?

Trang 6

Sơ lược quy trình phân loại thư được mô tả sau Trước hết, ta cần một thuật toán để

chuyển email thành những điểm dữ liệu Công đoạn này rất rất quan trọng vì nếu chúng tachọn được biểu diễn phù hợp, công việc của perceptron sẽ nhẹ nhàng hơn rất nhiều Tiếptheo, perceptron sẽ đọc tọa độ của từng điểm và sử dụng thông tin này để cập nhật tham sốcủa đường thẳng cần tìm Các bạn có thể xem qua demo của perceptron (điểm xanh lá cây

là điểm perceptron đang xử lý):

Vì là một thuật toán khá đơn giản, có rất nhiều vấn đề có thể nảy sinh với perceptron, ví dụnhư điểm cần phân loại nằm ngay trên đường thẳng phân chia Hoặc tệ hơn là với một tập

dữ liệu phức tạp hơn, đường thẳng phân chia không tồn tại:

Machine learning là gì?

Trang 7

Lúc này, ta cần các loại đường phân chia "không thẳng" Nhưng đó lại là một câu chuyệnkhác.

Trang 8

và thời gian để lấy được ngôi sao, chiếc xe dần trở nên thuần thục hơn trong việc leo đồi lấysao

Machine learning có mối quan hệ rất mật thiết đối với statistics (thống kê) Machine

learning sử dụng các mô hình thống kê để "ghi nhớ" lại sự phân bố của dữ liệu Tuy nhiên,

không đơn thuần là ghi nhớ, machine learning phải có khả năng tổng quát hóa những gì

đã được nhìn thấy và đưa ra dự đoán cho những trường hợp chưa được nhìn thấy Bạn cóthể hình dung một mô hình machine learning không có khả năng tổng quát như một đứa trẻhọc vẹt: chỉ trả lời được những câu trả lời mà nó đã học thuộc lòng đáp án Khả năng tổngquát là một khả năng tự nhiên và kì diệu của con người: bạn không thể nhìn thấy tất cả cáckhuôn mặt người trên thế giới nhưng bạn có thể nhận biết được một thứ có phải là khuônmặt người hay không với xác suất đúng gần như tuyệt đối Đỉnh cao của machine learning

sẽ là mô phỏng được khả năng tổng quát hóa và suy luận này của con người

Như ta đã thấy, nói đến machine learning là nói đến "dự đoán": từ việc dự đoán nhãn phânloại đến dự đoán hành động cần thực hiện trong bước tiếp theo Vậy machine learning có

thể dự đoán tương lai hay không? Có thể có hoặc có thể không: machine learning có thể

dự đoán được tương lai, nhưng chỉ khi tương lai có mối liên hệ mật thiết với hiện tại

Để kết thúc, mình muốn cùng các bạn xem xét một ví dụ đơn giản sau Giả sử bạn đượcđưa cho một đồng xu, rồi được yêu cầu tung đồng xu một số lần Vấn đề đặt ra là: dựa vàonhững lần tung đồng xu đó, bạn hãy tiên đoán ra kết quả lần tung tiếp theo Chỉ cần dựavào tỉ lệ sấp/ngửa của những lần tung trước đó, bạn có thể đưa ra một dự đoán khá tốt.Machine learning là gì?

Trang 9

learning, nếu ta xem như mỗi ngày có một "đồng xu" được tung ra để xem một sự kiện códiễn ra hay không Nếu "đồng xu" của ngày mai được chọn một cách tùy ý không theo phân

bố nào cả thì machine learning sẽ thất bại Rất may là trong nhiều trường hợp điều đókhông hoàn toàn đúng, thế giới hoạt động theo những quy luật nhất định và machine

learning có thể nhận ra những quy luật đó Nhưng nói cho cùng, machine learning hoàntoàn không phải là một bà phủ thủy với quả cầu tiên tri mà cũng giống như chúng ta: phánđoán bằng cách tổng quát hóa những kinh nghiệm, những gì đã được học từ dữ liệu

Xem phim The Imitation Game về nhân vật này, nhưng đừng tin hết những gì trong

phim ↩

1

Machine learning là gì?

Trang 10

Trong supervised learning, các quan sát bắt buộc phải được dán nhãn trước Đây chính

là một trong những nhược điểm của phương pháp này, bởi vì không phải lúc nào việc dánnhãn chính xác cho quan sát cũng dễ dàng Ví dụ như trong dịch thuật (machine

translation), từ một câu của ngôn ngữ gốc có thể dịch thành rất nhiều phiên bản khác nhautrong ngôn ngữ cần dịch sang Tuy nhiên, việc quan sát được dán nhãn cũng lại chính là ưuđiểm của supervised learning bởi vì một khi đã thu thập được một bộ dữ liệu lớn được dánnhãn chuẩn xác, thì việc huấn luyện trở nên dễ dàng hơn rất nhiều so với khi dữ liệu khôngđược dán nhãn

Trong chương này, chúng ta sẽ đưa supervised learning về một phương trình toán học đơngiản, thậm chí có thể giải được bằng kiến thức phổ thông Tuy nhiên, ta sẽ chỉ ra nhữngđiểm bất cập khi sử dụng các phương pháp thông thường để tìm lời giải và đưa ra một sốcách để hạn chế những bất cập đó Tổng hợp những phương pháp này, ta xây dựng đượcmột thuật toán supervised learning tổng quát

Supervised Learning

Trang 11

Observation: kí hiệu là x, input trong các bài toán Observation thường có dạng một vector

x = (x , x , , x ), gọi là feature vector Mỗi x gọi là một feature Ví dụ bạn muốn đoán

xem hôm nay có mưa không dựa vào observation gồm các feature (nhiệt độ, độ ẩm, tốc độgió)

Label: kí hiệu là y, output của bài toán Mỗi observation sẽ có một label tương ứng Ở ví dụ

về mưa ở trên label chỉ là "mưa" hoặc "không mưa" Label có thể mang nhiều dạng nhưngđều có thể chuyển đổi thành một số thực hoặc một vector Trong chương này chủ yếu làmviệc với label là số thực

w

w

Các khái niệm cơ bản

Trang 12

Ở bài này mình đưa ra một định nghĩa sơ lược Định nghĩa này không hoàn toàn chính xácnhưng nó giúp ta hiểu một cách khái quát nhất về supervised learning Dần dần trong cácbài học sau chúng ta sẽ cải tiến để hoàn chỉnh định nghĩa này

Góc nhìn thứ nhất: ước lượng hàm số

Tiếp cận supervised learning thực chất không đòi hỏi quá nhiều kiến thức cao siêu Nó cóthể được quy về thành một bài toán tối thiểu hàm số cơ bản trong toán học

Bạn hãy tưởng tượng rằng đang chơi một trò chơi với thiên nhiên (là một sức mạnh vô hình

điều khiển mọi sự việc của vũ trụ) Đầu tiên, thiên nhiên viết ra một hàm bí ẩn f nào đó Sau đó thiên nhiên đưa vào hàm số này một loạt các observation x , ⋯ , x để tạo ra

Q1: Giả sử bằng cách nào đó ta biết được rằng x = (x , x ) (một vector 2 chiều) và

y = f (x) = ax + bx + c Cần bao nhiêu cặp dữ liệu (x, y) để có thể tìm ra parameter (a, b, c)?

A1: Với mỗi cặp (x, y) ta xây dựng được một phương trình y = ax + bx + c Vì có 3 ẩn

nên ta cần chỉ cần 3 phương trình là giải ra được tham số (nếu tồn tại) Tức là cần 3 điểm

dữ liệu

∗ (1) (N )

1 2 2

Hai góc nhìn về supervised learning

Trang 13

biết được f có dạng như thế nào Vì thế, dù ta có đưa ra một model f để ước lượng f , cũng không ai biết f là gì để cho biết là ta đang đúng hay sai Nói cách khác, supervised

learning là một trò chơi dự đoán mà không ai biết đáp án đúng là gì

Đọc đến đây các bạn đừng nản lòng Tuy là nghe có phần không tưởng, nhưng không riêng

gì machine learning, các ngành khoa học cơ bản khác cũng chơi những trò chơi tương tự.Các bạn có nghĩ rằng Einstein nằm mơ thấy thiên nhiên thì thầm vào tai mình công thức

E = mc ?

Cho đến giờ, người ta vẫn phải làm thí nghiệm trong thực tế để kiểm chứng lại các lý thuyếtcủa Einstein cho đến khi nó sai thì thôi Trong supervised learning, ta cũng làm một điều

tương tự như vậy: kiểm chứng sự đúng đắn của một model bằng thực nghiệm Cho dù không biết hình dạng của f ra sao, thì vẫn còn đó các cặp observation-label sinh ra từ hàm

Trang 14

A2: Trong machine learning, có một nguyên tắc vô cùng, vô cùng quan trọng cần nhớ: đó là quá trình train và test phải độc lập với nhau! Dữ liệu được dùng để test model phải không được model nhìn thấy lúc train Có rất nhiều cách để vi phạm nguyên tắc này, và

điều dẫn đến một hậu quả "thảm khốc", overfitting Mình sẽ giải thích về hiện tượng này

trong một dịp khác Nói nôm na là model của bạn sẽ biến thành một con vẹt, chẳng họcđược gì khác ngoài việc lặp lại những gì nó đã nhìn thấy Vì thế, bạn phải chia dữ liệu rathành training set và test set, và phải làm điều này trước khi train model

Tuy đã làm cho trò chơi supervised learning trở nên hợp lệ, ta vẫn chưa thể chơi được Cóhai vấn đề phát sinh, đó là:

1 Thế nào là một model "tốt" trên test set? 2 Làm sao để tìm ra được một model "tốt" từtraining set?

Trang 15

Một trong những cách đơn giản nhất đó là đếm xem nó đoán sai bao nhiêu label thật trêntest set Ta giả sử model bị phạt 1 điểm với mỗi lần label dự đoán khác với label thật Số

Trang 16

ưu hàm số Hãy quay lại trả lời hai vấn đề trong phần trước:

1 Thế nào là một model "tốt" trên test set? → model cho giá trị của evaluation functiontrên test set càng nhỏ thì càng tốt

2 Làm sao để tìm ra được một model tốt từ training set? → tìm model cực tiểu hóa giá trịcủa evaluation function trên training set

Cụ thể hơn, sau khi chọn được evaluation function, supervised learning có thể được gói gọntrong 2 bước sau:

w

w

Hai góc nhìn về supervised learning

Trang 17

Giữa training problem và evaluation problem, evaluation problem đơn giản hơn vì bạn chỉviệc đưa observation vào model, nhận về label dự đoán, và tính giá trị của evaluation

function trên test set Training problem phức tạp hơn vì nó phải đảm bảo rằng model phải cókhả năng dự đoán tốt không chỉ trên training set mà còn trên test set (là dữ liệu không đượcmodel nhìn thấy lúc train) Bài viết giải thích tại sao không thể sử dụng các evaluation

function như error rate để train model, và giới thiệu về khái niệm objective function

Mục tiêu tối thượng của supervised learning

Khi nói đến việc "giải" training problem tức là ta đang nói đến việc tìm một phương pháphuấn luyện trên training set sao cho model dự đoán tốt trên test set Người ta thường ítquan tâm đến độ tốt của model trên training set bởi vì nó thường rất cao (nhất là với các

training set mà thôi Vì sao là "khá" chính xác mà không phải là "hoàn toàn" chính xác?

Không có điều gì đảm bảo model dự đoán hoàn chính xác trên train set cũng dự đoán tốttrên test set cả Thậm chí nó có thể dự đoán rất tệ nếu test set rất khác với train set Điềugiống như việc bạn bị "trật tủ" khi đi vậy (ôn một đằng đề ra một kiểu) Thường trong các bàitoán, bạn có một khối dữ liệu lớn từ một nguồn nào đó rồi chia ra 80% để train và 20% đểtest Vì thế mà training set và test set sẽ có cùng một nguồn (nói chính xác hơn là cùng mộtphân bố xác suất) Ví dụ nhưng training set của bạn là ảnh có nhiều cây cối, thì trong test

w

w

Objective function

Trang 18

thường là tổng của của các loss function có dạng 0-1 loss, tức là chỉ trả về 0 hoặc 1 và phải

trùng hoàn toàn với label thật thì mới nhận được 0 Error rate là một ví dụ điển hình của 0-1loss Đối với những hàm như vậy, nếu model đoán sai thì không biết sửa chữa theo hướngnào để tiến bộ hơn

Khi train, ta cần một loss function cho partial credit, tức là đúng tới đâu cho điểm tới đó và

dự đoán thế nào cũng có điểm Model có thể tận dụng điều này để thay đổi câu trả lời mộtchút xem điểm tăng hay giảm, dần dần tìm ra câu trả lời đúng Một trong những loss

Trang 20

bằng 0 Chỉ đến điểm mà f (x) = y, hàm này độ nhiên giảm xuống giá trị 0 và gradient ở

đây không được định nghĩa Hơn nữa, ở những điểm mà hàm này có gradient, thì gradientlại vô dụng (bằng 0) Hình vẽ này sẽ giúp bạn dễ hình dung hơn,

Ở đây model của chúng ta đang được giả định là chỉ có 1 parameter (ví dụ như

y = f (x) = ax với parameter là a) Đường ngang thể hiện cho đồ thị với trục ngang là tham

số, trục dọc là giá trị error rate ứng với tham số Việc đi sang trái/phải thể hiện cho việctăng/giảm tham số Gỉa sử model đang lạc ở vùng mà error rate đang có giá trị là 1 Xungquanh gần đó hoàn toàn là một vùng bằng phẳng (gradient bằng 0) Model hoàn toàn khôngbiết nên đi về hướng nào (tăng hay giảm parameter) để đến được vùng thấp hơn Modelkhông thể nhìn qúa xa và không thể nào biết được là đi thêm về bên phải một đoạn sẽ đạtđược error rate tối ưu (bằng 0) Trong thực tế, model có rất nhiều parameter và, với mỗiparameter, ta phải ra quyết định tăng hay giảm như thế này

w

Objective function

Trang 21

Trong bài này, ta sẽ tìm hiểu kỹ hơn về training problem Tại sao chỉ cần tìm model dự đoán

"khá" chính xác trên training set? Tại sao một model dự đoán "hoàn toàn" chính xác trêntraining set lại có thể dự đoán rất tồi trên test set?

Kí hiệu arg min f (x) trả về giá trị của x để hàm f (x) đạt được giá trị cực tiểu Ví dụ,

arg min x + 1 = 0 bởi vì x + 1 đạt giá trị cực tiểu (bằng 1) tại x = 0 Các bạn sẽ nhìn thấy

phương trình này trong đa số các paper (bài báo khoa học) về machine learning

Khi ta nói muốn tìm model "dự đoán chính xác hoàn toàn" trên training set, tức là nói đếnviệc sử dụng một objective function mà không có regularizer:

Ngày đăng: 31/07/2019, 11:22

TỪ KHÓA LIÊN QUAN

w