2,623 ❤︎ Bài viết: 1670 Tìm chủ đề
173 0
Trong thời đại xuất hiện khái niệm về trí tuệ nhân tạo AI, con người luôn tìm kiếm những phương thức mới nhằm thay thế các cách làm truyền thống mang tính thủ công, phức tạp và tốn nhiều thời gian.

Sự phát triển của công nghệ đã cho phép máy móc không chỉ thực hiện các thao tác theo lập trình sẵn, mà còn có khả năng học hỏi từ dữ liệu, phân tích và đưa ra quyết định. Từ dó, khái niệm máy học (Machine Learning) ra đời như một giải pháp cốt lõi, giúp máy tính tự động rút ra quy luật từ dữ liệu và hỗ trợ con người trong nhiều lĩnh vực, đặc biệt là y tế, tài chính và giáo dục.

55055251854_c3b8f60f3d_o.png


Giới thiệu về các khái niệm học máy


Phần 1: Mô Hình Học Máy

Môn: Điện toán đám mây

Mục lục:


Phần 1: Mô hình học máy

Phần 2: Các loại mô hình học máy - Hồi quy

Phần 3: Các loại mô hình học máy - Phân loại nhị phân

Phần 4: Các loại mô hình học máy - Phân loại đa lớp

Phần 5: Các loại mô hình học máy - Phân cụm

Phần 6: Các loại mô hình học máy - Học sâu

Phần 7: Bài tập - Khám phá các kịch bản học máy

1. Khái niệm học máy

Dựa trên lý thuyết:


Máy học (Machine Learning) là một lĩnh vực giao thoa giữa khoa học dữ liệu và kỹ thuật phần mềm, trong đó máy tính sử dụng dữ liệu từ quá khứ để học ra mô hình, từ đó dự đoán hoặc suy luận các giá trị, kết quả cho dữ liệu mới chưa từng thấy.

Giải thích đơn giản:

Máy học là quá trình cho phép máy tính học từ dữ liệu, rút ra quy luật, và áp dụng các quy luật đó để dự đoán hoặc ra quyết định trong các hệ thống phần mềm.

Ví dụ thực tế:

+ Chủ cửa hàng kem có thể sử dụng một ứng dụng kết hợp dữ liệu bán hàng trong quá khứ và dữ liệu thời tiết để dự đoán số lượng kem họ có khả năng bán được trong một ngày nhất định, dựa trên dự báo thời tiết.

+ Bác sĩ có thể sử dụng dữ liệu lâm sàng từ các bệnh nhân trước đây để chạy các xét nghiệm tự động dự đoán xem bệnh nhân mới có nguy cơ mắc bệnh tiểu đường hay không dựa trên các yếu tố như cân nặng, mức đường huyết và các chỉ số khác.

+ Một nhà nghiên cứu ở Nam Cực có thể sử dụng các quan sát trước đây để tự động hóa việc xác định các loài chim cánh cụt khác nhau (như Adelie, Gentoo hoặc Chinstrap ) dựa trên các phép đo về vây, mỏ và các đặc điểm thể chất khác của chim.

Bản chất chung của máy học:

a) Có dữ liệu trong quá khứ

b) Có một mục tiêu cần dự đoán

c) Máy tự học mối quan hệ giữa dữ liệu và kết quả

d) Áp dụng mô hình đó cho trường hợp mới

Kết luận:

Nếu lập trình truyền thống yêu cầu con người chỉ ra từng quy tắc, thì máy học cho phép máy tính tự học các quy luật từ dữ liệu để phục vụ dự đoán và suy luận. Kết quả của quá trình học đó, chính là mô hình học máy – Thứ mà máy tính sử dụng để đưa ra kết quả cho các dữ liệu mới.

2. Mô hình học máy là gì?

Mô hình học máy có thể hiểu đơn giản là một chương trình phần mềm biết dự đoán. Bên trong mô hình này là một hàm toán học, dùng để:

+ Nhận dữ liệu đầu vào.

+ Tính toán.

+ Trả về kết quả dự đoán.

Ta có thể viết ngắn gọn bằng công thức:


y = f(x)

+ y: Kết quả cần dự đoán

+ x: Các đặc trưng (Thông tin đầu vào)

+ f: Mô hình học máy

55055251909_b7ab8c44f5_o.png


3. Dữ liệu huấn luyện gồm những gì?

Để mô hình học được, ta cần dữ liệu trong quá khứ, gọi là dữ liệu huấn luyện. Mỗi bản ghi dữ liệu dùng để mô tả một đối tượng cụ thể và bao gồm hai thành phần chính:

+ Đặc trưng (x): Các thông tin mô tả đối tượng

+ Nhãn (y): Kết quả đúng đã biết mà mô hình cần học để dự đoán

Trong thực tế, một đối tượng không thể được mô tả chỉ bằng một thông tin đơn lẻ. Thay vào đó, nó cần được biểu diễn bằng nhiều đặc trưng khác nhau. Vì vậy, trong máy học, x thường được biểu diễn dưới dạng một tập hợp các giá trị, hay còn gọi là:


x = [x₁, x₂, x₃...]

Trong đó:

+ x₁ là đặc trưng thứ nhất

+ x₂ là đặc trưng thứ hai

+ x₃ là đặc trưng thứ ba

+ ...

Tất cả các đặc trưng này kết hợp lại để mô tả đầy đủ đối tượng, giúp mô hình học máy có đủ thông tin cần thiết để phân tích và dự đoán chính xác nhãn y.

55054394147_23668a90d2_o.png


Ví dụ thực tế:

Trong bài toán chuẩn đoán bệnh án, mỗi bản ghi dữ liệu đại diện cho một bệnh nhân tại một thời điểm cụ thể. Bản ghi này gồm các thông tin y tế dùng để mô tả tình trạng sức khỏe của bệnh nhân, chẳng hạn như:

+ Cân nặng: 68 kg (Phản ánh thể trạng)

+ Đường huyết: 180 mg/dL (Phản ánh lượng đường trong máu)

+ Tuổi: 52 (Yếu tố nguy cơ sinh học)

Dựa trên các thông tin này, bác sĩ đã đưa ra kết luận chuẩn đoán rằng bệnh nhân có nguy cơ mắc bệnh tiểu đường hay không.

Trong bài toán máy học:

Kết quả chuẩn đoán được biểu diễn bằng nhãn (y):

+ 1: Có nguy cơ.

+ 0: Không có nguy cơ.

Các thông tin của bệnh nhân được đưa vào mô hình dưới dạng các đặc trưng (x):

+ x = [68, 180, 52]

+ y = 1

Trong đó, x là tập hợp các chỉ số y tế mô tả bệnh nhân, còn y là kết quả mà mô hình học máy cần học để dự đoán cho những bệnh nhân mới.

4. Giai đoạn huấn luyện

Mô hình "Học" bằng cách liên tục đưa dữ liệu đầu vào (x) qua một hàm toán học, so sánh kết quả dự đoán với kết quả đúng (y), sau đó điều chỉnh các tham số bên trong để giảm sai lệch. Quá trình này được lặp lại nhiều lần trên dữ liệu huấn luyện cho đến khi mô hình tìm được mối quan hệ phù hợp nhất giữa dữ liệu đầu vào và kết quả cần dự đoán.

55055302706_9a571a804a_o.png

Giả sử ta đang xây dựng mô hình chuẩn đoán nguy cơ tiểu đường.

Bước 1: Đưa dữ liệu vào mô hình

Mỗi bệnh nhân được biểu diễn dưới dạng một vector đặc trưng:

x = [Cân nặng, Đường huyết, Tuổi]

x = [68, 180, 52]

y = 1 (có nguy cơ tiểu đường)

Mô hình ban đầu tạo ra một công thức dự đoán đơn giản, ví dụ:


z = w1 x 68 + w2 x 180 + w3 x 52 + b

Trong đó:

+ z : kết quả dự đoán

+ w1, w2, w3: trọng số

Giải thích kỹ:


Theo lý thuyết: Trọng số mô hình là các tham số số học có thể học được trong mạng nơ-ron , xác định cách hệ thống xử lý dữ liệu đầu vào để tạo ra dự đoán.

Nói đơn giản, trọng số là những con số thể hiện mức độ quan trọng của từng đặc trưng. Nói cách khác, trọng số trả lời cho câu hỏi: "Thông tin này đáng tin tới mức nào khi đưa ra quyết định?" Trọng số càng lớn thì đặc trưng đó càng có ảnh hưởng mạnh đến kết quả dự đoán của mô hình.

Cụ thể trọng số được khởi tạo với giá trị gần bằng 0 để mô hình chưa ưu tiên bất kỳ đặc trưng nào ngay từ đầu. Điều này tránh việc một đặc trưng bị coi là quá quan trọng khi mô hình chưa có đủ dữ liệu để kết luận. Trong bài toán ta đặt các trọng số lần lượt là:

w₁ = 0.002 (cân nặng)

w₂ = 0.003 (đường huyết)

w₃ = 0.001 (tuổi)


+ b: độ lệch pha (bias)

Giải thích kỹ:

Theo lý thuyết: Trong mô hình, bias (b) là tham số dùng để điều chỉnh ngưỡng dự đoán chung. Nó cho phép mô hình linh hoạt hơn trong việc chuyển đổi tổng tuyến tính của các đặc trưng thành xác suất dự đoán, thay vì mặc định rằng mọi giá trị đầu vào đều dẫn đến cùng một mức rủi ro.

Nói đơn giản, độ lệch pha b là ngưỡng quyết định cơ bản của mô hình, kể cả khi các đặc trưng bằng 0. Nếu trọng số trả lời cho "Thông tin này quan trọng bao nhiêu?", thì độ lệch pha b sẽ trả lời "Khi chưa có thông tin gì, ta nghiêng về quyết định nào?"

Nếu độ lệch pha lớn, mô hình dễ dự đoán việc có nguy cơ bị bệnh; nếu độ lệch pha nhỏ hoặc âm, mô hình thận trọng hơn, dễ dự đoán việc không có nguy cơ bị bệnh ở ví dụ trên.

Trong bài toán, ta sẽ đặt độ lệch pha là -0.5 để máy tính có thể thận trọng hơn, không vội kết luận có nguy cơ.

Bước 2: Thực hiện phép tính và đưa ra kết quả

Giả sử kết quả thật của bệnh nhân là:

y = 1 (có nguy cơ tiểu đường)​

Mô hình áp dụng công thức dự đoán:

z =w1⋅68+w2⋅180+w3⋅52+b
Thay các trọng số đã khởi tạo:

w₁ = 0.002 (cân nặng)

w₂ = 0.003 (đường huyết)

w₃ = 0.001 (tuổi)

b = - 0.5

Ta có:

z =0.002 x 68+ 0.003 x 180+ 0.001 x 52 + (-0.5) = 0.228

Bước 3: Chuyển giá trị tính toán thành xác suất


Do đây là bài toán chẩn đoán có hoặc không, mô hình cần đưa ra kết quả dưới dạng xác suất. Vì vậy, hàm sigmoid được sử dụng để chuyển giá trị z của mô hình thành một giá trị nằm trong khoảng [0,1], đại diện cho xác suất dự đoán.

55056125426_df28b861e0_o.png

Trong bài toán, ta thay z = 0.228 vào công thức, kết quả là:

y^≈0.56
Mô hình dự đoán: 56% nguy cơ tiểu đường ở đối tượng.

Bước 4: Đánh giá sai lệch

Kết quả thật: y = 1

Kết quả dự đoán: y^≈0.56

Mặc dù mô hình đã dự đoán đúng xu hướng (có nguy cơ), nhưng mức độ tự tin chưa cao vì giá trị dự đoán 0.56 còn khá xa so với kết quả thật 1. Do đó, mô hình tiếp tục điều chỉnh các tham số bên trong.

Bước 5: Mô hình "học" từ sai lệch

Sau khi so sánh kết quả dự đoán y^ với kết quả đúng y, mô hình biết được mình đang dự đoán lệch bao nhiêu và lệch theo hướng nào (quá thấp hay quá cao). Dựa trên sai lệch đó, thuật toán sẽ phân tích xem:

+ Đặc trưng nào đã đóng góp nhiều vào kết quả dự đoán.

+ Đặc trưng nào chưa được đánh giá đúng mức.

Từ đó, mô hình tiến hành điều chỉnh các tham số bên trong:

+ Tăng trọng số của những đặc trưng có ảnh hưởng mạnh đến kết quả (Ví dụ: Nếu đường huyết cao nhưng dự đoán vẫn thấp, mô hình sẽ tăng trọng số của đường huyết)

+ Điều chỉnh độ lệch pha (b) để mô hình bớt quá thận trọng hoặc bớt quá dễ kết luận.

+ Nhằm mục tiêu làm cho kết quả dự đoán ở lần sau gần với kết quả đúng hơn.

Quá trình "dự đoán → so sánh → điều chỉnh" này được lặp đi lặp lại trên rất nhiều bệnh nhân khác nhau. Nhờ đó, mô hình không học thuộc từng trường hợp riêng lẻ, mà dần dần rút ra được mối quan hệ thực sự giữa các chỉ số y tế và nguy cơ mắc bệnh.

5. Mô hình được huấn luyện

Kết quả của toàn bộ quá trình huấn luyện không phải là dữ liệu, mà là một mô hình toán học hoàn chỉnh, bao gồm:

+ Một công thức tính toán (Hàm số)

+ Các trọng số w1,w2,w3,...

+ Độ lệch pha b.
Trong bài toán chuẩn đoán tiểu đường, mô hình này bao gồm:

+ Công thức tính tổng tuyến tính:

z =w1 x x1 + w2 x x2 + w3 x x3 + b
+ Hàm sigmoid để chuyển đổi kết quả sang xác suất: y^=σ(z)
Kết luận: Tất cả những thành phần này hợp lại tạo thành mô hình học máy, được ký hiệu là y=f(x)

55054394352_493f08d3e5_o.png

6. Suy luận với dữ liệu mới

Khi gặp một bệnh nhân mới, mô hình không cần biết trước kết quả đúng y, mà chỉ cần các đặc trưng đầu vào.

Ví dụ, với bệnh nhân mới có thông tin:

+ Cân nặng: 70 kg

+ Đường huyết: 165 mg/dL

+ Tuổi: 48

Ta biểu diễn dưới dạng: x_{new} = [70, 165, 48]

Mô hình sẽ thực hiện:

+ Đưa x_{new} vào công thức f đã học.

+ Tính giá trị z.

+ Áp dụng hàm sigmoid.

+ Trả về kết quả dự đoán:

y^=f(x_{new})​

Kết quả y^ là xác suất bệnh nhân có nguy cơ mắc tiểu đường.

55055481443_54047fc1dd_o.png

Mô hình không học lại trong giai đoạn này. Nó chỉ áp dụng kiến thức đã học để đưa ra dự đoán. Nhờ đó hệ thống có thể hỗ trợ đưa ra quyết định, tự động sàn lọc bệnh nhân và tiết kiệm khá nhiều thời gian, kể cả việc giảm sai sót do con người gây ra.

6. Tóm tắt toàn bộ quy trình học máy

Mô hình học máy không ghi nhớ từng trường hợp trong quá khứ, mà học cách tính toán để đưa ra dự đoán hợp lý cho những dữ liệu mới chưa từng xuất hiện.

+ Huấn luyện: Dữ liệu cũ (x,y) → Điều chỉnh w,b → Tạo mô hình f

+ Suy luận: Dữ liệu mới x → Mô hình f → Dự đoán y^

7. Các loại mô hình học máy

Không phải mọi bài toán đều dùng chung một kiểu học máy. Tùy vào bạn muốn dự đoán cái gì và dữ liệu có sẵn đáp án hay không, ta sẽ chọn loại mô hình học máy phù hợp. Cách phân loại đơn giản và phổ biến nhất là dựa vào việc dữ liệu có nhãn (đáp án đúng) hay không.

55054999361_d1b3342c73_o.png


7.1. Học máy có giám sát (Supervised machine learning)

Trong học máy có giám sát, bạn cung cấp cho máy dữ liệu kèm theo đáp án đúng. Máy sẽ học từ những ví dụ này để rút ra quy luật, từ đó dự đoán đáp án cho dữ liệu mới trong tương lai. Cách thức hoạt động giống như ví dụ bên trên.

Về mặt lý thuyết, học máy có giám sát dựa trên:

+ Dữ liệu huấn luyện đã có nhãn y (Đáp án đúng)

+ Quá trình học lặp lại, trong đó máy tự so sánh kết quả dự đoán với đáp án thật và tự điều chỉnh để dự đoán ngày càng chính xác hơn.

Học máy có giám sát gồm 2 loại chính:

A) Hồi quy (Regression)


Hồi quy là bài toán dự đoán ra một con số (không phải nhãn, không phải đúng/sai). Tức là đầu ra là giá trị liên tục, có thể là số chẵn lẻ, số lớn nhỏ bất kỳ.

Ví dụ thực tế về dự đoán chỉ số đường huyết của bệnh nhân:

+ Dữ liệu đầu vào bao gồm: Tuổi, cân năng, chế độ ăn, tiền sử bệnh,...

+ Mô hình dự đoán ra: Đường huyết = 120 mg/dL

Kết quả là 120 là một con số cụ thể. Đặc biệt, giá trị trả về không bị giới hạn trong vài giá trị cố định, nó có thể là 120.1, 119.8,... Vậy nên bài toán hồi quy mà giá trị cần dự đoán là một số liên tục.

B) Phân loại (Classification)

Phân loại là bài toán trong học máy mà kết quả dự đoán thuộc về một nhóm hoặc một nhãn đã được xác định trước, chứ không phải là một giá trị số liên tục. Nói cách khác, mô hình không dự đoán ra con số, mà chỉ chọn tên nhóm phù hợp nhất trong các nhóm có sẵn.

Với phân loại, bài toán thường được chia thành phân loại nhị phân (Binary Classification) và phân loại đa lớp (Multi-class Classification), tùy theo số lượng nhãn cần dự đoán.

Ví dụ về dự đoán nguy cơ tiểu đường:

+ Đầu vào: Tuổi, cân nặng, chỉ số đường huyết, tiền sử gia đình.

+ Đầu ra: Nhãn "Có nguy cơ" hoặc "Không nguy cơ"

Kết luận: Vì kết quả chỉ phụ thuộc một trong hai nhãn cố định, thì đây được gọi là bài toán phân loại nhị phân (Binary Classification)

Ngược lại, khi bài toán có nhiều hơn hai nhãn khác nhau, thì được gọi là bài toán phân loại đa lớp (Multi-class Classification). Trong trường hợp này, mô hình sẽ lựa chọn một nhãn phù hợp nhất trong số nhiều nhãn đã được xác định trước.

Ví dụ:

+ Đầu vào: Hình ảnh

+ Đầu ra: Chó, mèo, chim,...

Kết luận: Bài toán nhận dạng hình ảnh có đầu vào là hình ảnh và đầu ra là các nhãn như "Chó", "Mèo", "Chim", nên đây là bài toán phân loại đa lớp (Multi-class Classification), vì kết quả có từ ba nhãn trở lên.

7.1. Học máy không giám sát (Unsupervised machine learning)

Trong học máy không giám sát, dữ liệu không có đáp án đúng (không có nhãn y).
Máy không biết trước kết quả cần ra là gì, mà chỉ dựa vào dữ liệu để tự tìm ra quy luật ẩn bên trong.

Đặc điểm dễ nhớ:

+ Dữ liệu chỉ có đặc trưng x, không có nhãn y

+ Không có đáp án để so sánh đúng – sai

+ Máy tự phát hiện sự giống và khác nhau trong dữ liệu

Dạng dữ liệu:

Mỗi đối tượng chỉ được mô tả bằng các đặc trưng:

x = [x1,x2,x3,...]
Ví dụ mô phỏng:

Giả sử một cửa hàng có thông tin của nhiều khách hàng, nhưng không hề biết họ thuộc nhóm nào. Mỗi khách hàng được mô tả bằng 3 đặc trưng (3 dữ liệu đầu vào)

+ Tuổi

+ Thu nhập (Triệu/tháng)

+ Số lần mua hàng trong 1 tháng

Bảng dữ liệu như sau:

55056715350_689750f9de_o.png


Bảng dữ liệu không có cột phân loại khách hàng, nghĩa là đây là một mô hình không giám sát. Máy chỉ nhìn thấy con số và mỗi khách hàng là một điểm:

x = (Tuổi, thu nhập, số lần mua)​

Tương đương:

+ A = (22, 6, 2)

+ B = (24, 7, 3)

+ C = (45, 25, 15)

+ D = (47, 28, 18)

+ E = (30,10,5)

Mô hình này sẽ tìm ra điểm nào giống nhau nhất, ở bảng dữ liệu, nó nhận ra:

+ A và B rất gần nhau

+ C và D rất gần nhau

+ E ở giữa

Kết quả: Mô hình sẽ tự gom nhóm.

+ Nhóm 1: A,B

+ Nhóm 2: C,D

+ Nhóm 3: E

Sau khi chia nhóm, người dùng có thể nhìn vào, giải thích và tự đặt tên cho mỗi nhóm:

+ Nhóm 1: Khách trẻ, thu nhập thấp, mua ít

+ Nhóm 2: Khách lớn tuổi, thu nhập cao, mua nhiều

+ Nhóm 3: Khách trung bình

Kết luận: Trong bài toán phân cụm, bài chỉ cần nhớ thuật toán sẽ chỉ dựa vào những đối tượng có những đặc điểm tương đồng nhau, và gọp nhau lại thành một nhóm. Sau đó, con người dựa vào các nhóm này để phân chia, đặt tên cho từng nhóm.
 
Chỉnh sửa cuối:

Những người đang xem chủ đề này

Xu hướng nội dung

Back