-
08/10/2013
-
401
-
989 bài viết
Machine learning làm việc như thế nào?
Đặt vấn đề
Trong bài này, chúng ta sẽ tìm hiểu cách xây dựng mô hình trong Machine Learning để phân biệt một đoạn văn bản là có nghĩa hay vô nghĩa.
Ví dụ 1: đoạn văn bản có nghĩa:
“Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life. It is well known that a vital ingredient of success is not knowing that what you're attempting can't be done. The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it”
Ví dụ 2: đoạn văn bản vô nghĩa:
“DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd, mfns sdlfkls wkjgwl
Reoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi
Dfgldfkjgreiut rtyuiokjhg cvbnrtyu”
Xây dựng mô hình
Nhiệm vụ của chúng ta là phát triển một thuật toán học máy có thể phân biệt văn bản có nghĩa/vô nghĩa. Mặc dù tầm thường đối với một con người, nhưng với máy tính cần hướng dẫn nó cách phân biệt như thế nào?. Chúng ta sẽ sử dụng kỹ thuật học máy: cung cấp một số ví dụ cho thuật toán học máy để nó “học” cách phân biệt?
Chúng ta thử tính toán tần suất của một chữ cái cụ thể được theo sau bởi một chữ cái cụ thể khác.
Ví dụ trong câu:
“Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life”, ta thấy:
Để đơn giản, chúng ta bỏ qua dấu chấm câu và dấu cách. Thấy rằng, trong câu trên:
· a được theo sau bởi n 3 lần,
· f được theo sau bởi i 2 lần và
· a được theo sau bởi y 1 lần.
Nhưng đoạn văn bản trên là khá ngắn, chúng ta cần phân tích một chuỗi văn bản lớn hơn. Chúng ta thử thống kê trong truyện “Cuốn theo chiều gió”, của Margaret Mitchell - hay nói chính xác hơn là trong 20% số trang của cuốn sách. Dưới đây là một vài thống kê sau khi đã "quét" cuốn truyện:
Như bạn có thể thấy, xác suất gặp phải sự kết hợp của he cao gấp 2 so với an. Và wc chỉ xuất hiện 1 lần.
Bây giờ chúng ta đã có những nhận xét ban đầu về đặc điểm của một đoạn văn bản có nghĩa. Nhưng làm thế nào để tính được xác suất một câu là có nghĩa hoặc vô nghĩa? Ta sẽ xác định tần suất kết hợp của các cặp chữ cái (các cặp này trong thực tế thường đi với nhau) và sau đó nhân các tần suất đó:
F(he) * F(th) * F(er) * F(in) * F(an) * F(nd) *…
11460 * 9260 * 7089 * 6515 * 6214 * 4746 * …
Khi tính toán theo công thức trên, nếu xét theo từng câu, cần lưu ý đến độ dài của câu đó. Câu dài thì thường sẽ cho kết quả cao hơn đối với câu ngắn. Do vậy để có sự chính xác thì khi tính toán cần có thêm tham số là độ dài của câu.
Kết luận quan trọng:
- Nếu một câu là có nghĩa thì kết quả đầu ra có giá trị càng cao, tức là càng khớp với mô hình tính toán mà ta đã đề cập - và do đó, khả năng nó được viết bởi con người càng cao (có nghĩa).
- Nếu dòng trong câu chứa một số lượng lớn các cặp chữ cái ít khi đi cùng nhau như wx, zg, yq, wc v.v.) thì kết quả đầu ra có giá trị thấp, tức có nhiều khả năng là vô nghĩa.
Tính toán
Như bạn thấy, các câu có nghĩa sẽ ghi được hơn 1.000 điểm và câu vô nghĩa không thể vượt qua 100 điểm. Có vẻ như thuật toán của chúng ta đã hoạt động như mong đợi.
Để tính được số điểm “ngưỡng” phân biệt văn bản có nghĩa và vô nghĩa, cần cho máy tính thực hiện tính toán nhiều lần, bằng cách nhập vào nhiều câu có nghĩa rồi tính, sau đó lại nhập các câu vô nghĩa, tính tiếp. Sau khi có đủ dữ liệu, thì ngưỡng rơi vào khoảng 500 điểm.
Tham khảo
https://www.kaspersky.com/blog/machine-learning-explained/13487/
Trong bài này, chúng ta sẽ tìm hiểu cách xây dựng mô hình trong Machine Learning để phân biệt một đoạn văn bản là có nghĩa hay vô nghĩa.
Ví dụ 1: đoạn văn bản có nghĩa:
“Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life. It is well known that a vital ingredient of success is not knowing that what you're attempting can't be done. The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it”
Ví dụ 2: đoạn văn bản vô nghĩa:
“DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd, mfns sdlfkls wkjgwl
Reoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi
Dfgldfkjgreiut rtyuiokjhg cvbnrtyu”
Xây dựng mô hình
Nhiệm vụ của chúng ta là phát triển một thuật toán học máy có thể phân biệt văn bản có nghĩa/vô nghĩa. Mặc dù tầm thường đối với một con người, nhưng với máy tính cần hướng dẫn nó cách phân biệt như thế nào?. Chúng ta sẽ sử dụng kỹ thuật học máy: cung cấp một số ví dụ cho thuật toán học máy để nó “học” cách phân biệt?
Chúng ta thử tính toán tần suất của một chữ cái cụ thể được theo sau bởi một chữ cái cụ thể khác.
Ví dụ trong câu:
“Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life”, ta thấy:
Để đơn giản, chúng ta bỏ qua dấu chấm câu và dấu cách. Thấy rằng, trong câu trên:
· a được theo sau bởi n 3 lần,
· f được theo sau bởi i 2 lần và
· a được theo sau bởi y 1 lần.
Nhưng đoạn văn bản trên là khá ngắn, chúng ta cần phân tích một chuỗi văn bản lớn hơn. Chúng ta thử thống kê trong truyện “Cuốn theo chiều gió”, của Margaret Mitchell - hay nói chính xác hơn là trong 20% số trang của cuốn sách. Dưới đây là một vài thống kê sau khi đã "quét" cuốn truyện:
Như bạn có thể thấy, xác suất gặp phải sự kết hợp của he cao gấp 2 so với an. Và wc chỉ xuất hiện 1 lần.
Bây giờ chúng ta đã có những nhận xét ban đầu về đặc điểm của một đoạn văn bản có nghĩa. Nhưng làm thế nào để tính được xác suất một câu là có nghĩa hoặc vô nghĩa? Ta sẽ xác định tần suất kết hợp của các cặp chữ cái (các cặp này trong thực tế thường đi với nhau) và sau đó nhân các tần suất đó:
F(he) * F(th) * F(er) * F(in) * F(an) * F(nd) *…
11460 * 9260 * 7089 * 6515 * 6214 * 4746 * …
Khi tính toán theo công thức trên, nếu xét theo từng câu, cần lưu ý đến độ dài của câu đó. Câu dài thì thường sẽ cho kết quả cao hơn đối với câu ngắn. Do vậy để có sự chính xác thì khi tính toán cần có thêm tham số là độ dài của câu.
Kết luận quan trọng:
- Nếu một câu là có nghĩa thì kết quả đầu ra có giá trị càng cao, tức là càng khớp với mô hình tính toán mà ta đã đề cập - và do đó, khả năng nó được viết bởi con người càng cao (có nghĩa).
- Nếu dòng trong câu chứa một số lượng lớn các cặp chữ cái ít khi đi cùng nhau như wx, zg, yq, wc v.v.) thì kết quả đầu ra có giá trị thấp, tức có nhiều khả năng là vô nghĩa.
Tính toán
Như bạn thấy, các câu có nghĩa sẽ ghi được hơn 1.000 điểm và câu vô nghĩa không thể vượt qua 100 điểm. Có vẻ như thuật toán của chúng ta đã hoạt động như mong đợi.
Để tính được số điểm “ngưỡng” phân biệt văn bản có nghĩa và vô nghĩa, cần cho máy tính thực hiện tính toán nhiều lần, bằng cách nhập vào nhiều câu có nghĩa rồi tính, sau đó lại nhập các câu vô nghĩa, tính tiếp. Sau khi có đủ dữ liệu, thì ngưỡng rơi vào khoảng 500 điểm.
Tham khảo
https://www.kaspersky.com/blog/machine-learning-explained/13487/
Chỉnh sửa lần cuối: