Tổng quan về các thuật toán Học Máy (Phần III)

Trong các bài viết trước, chúng ta đã đi qua những thuật toán phổ biến trong Machine Learning, về hồi quy và phân lớp:

https://www.sonresearch.blog/2023/05/tong-quan-ve-cac-thuat-toan-hoc-may.html

Về mạng perceptron, bài toàn phân cụm, bài toán chuỗi thời gian và bài toán gợi ý:

https://www.sonresearch.blog/2023/05/tong-quan-ve-cac-thuat-toan-hoc-may_28.html

Phần cuối của loạt bài này sẽ đề cập tới thị giác máy tính, bài toán xử lý ngôn ngữ tự nhiên. Trong bài toán xử lý ngôn ngữ tự nhiên, chúng ta không thể thiếu mô hình GPT đang làm mưa làm gió hiện nay. Cuối cùng loạt bài viết này sẽ kết thúc bằng mô hình tạo sinh và thuật toán GAN, bí mật đằng sau deep-fake.

Các thuật toán cho các bài toán về thị giác máy tính (Computer vision)

Thị giác máy tính là khả năng máy tính hiểu các biểu diễn trực quan (ví dụ: hình ảnh) để thực hiện các tác vụ như xác định và phân loại đối tượng, đọc văn bản, nhận dạng khuôn mặt và phát hiện các chuyển động. Các nhiệm vụ thị giác máy tính mà chúng ta đang giải quyết ngày nay chủ yếu dựa trên nhận dạng mẫu – nghĩa là chúng ta gắn nhãn hình ảnh bằng tên đối tượng và hộp giới hạn (bounding boxes), đồng thời đào tạo các mô hình thị giác máy tính để nhận dạng các mẫu từ hình ảnh được huấn luyện và đưa ra dự đoán về hình ảnh mới. Công nghệ thị giác máy tính có nhiều ứng dụng thực tế trong thế giới thực, chẳng hạn như quản lý nội dung, bảo mật, thực tế ảo, xe tự lái, chẩn đoán y tế, phân tích thể thao và kiểm tra chất lượng trong sản xuất. Tiếp theo, chúng ta sẽ đi sâu vào một số kiến trúc mạng thần kinh thị giác máy tính.

Mạng thần kinh tích chập (CNN - Convolution neural network)

Mạng thần kinh tích chập (CNN) là một loại kiến trúc học sâu hoạt động tốt với dữ liệu hình ảnh. Cách nó học tương tự như cách hoạt động của vỏ não thị giác của động vật. Trong bối cảnh vỏ não thị giác, một tế bào thần kinh thị giác phản ứng với kích thích thị giác trong một tiểu vùng của trường thị giác. Các trường con khác nhau được bao phủ bởi các tế bào thần kinh thị giác khác nhau chồng lên nhau một phần để bao phủ toàn bộ trường thị giác. Trong CNN, có các bộ lọc khác nhau tương tác với các tiểu vùng trong một hình ảnh và phản hồi thông tin trong vùng đó.

Một CNN được tạo thành từ nhiều lớp lặp lại. Trong mỗi lớp lại có các lớp con khác nhau đảm nhiệm các chức năng khác nhau. Lớp tích chập chịu trách nhiệm trích xuất các tính năng từ các hình ảnh đầu vào. Nó sử dụng một loại bộ lọc gọi là bộ lọc tích chập, là một ma trận để trích xuất các tính năng. Các lớp tích chập hình ảnh đầu vào (một mảng đa chiều) và gửi đầu ra (các tính năng được trích xuất) của một lớp tích chập đến lớp tiếp theo.

Lớp tổng hợp trong CNN làm giảm kích thước của các tính năng được trích xuất từ ​​lớp tích chập bằng cách kết hợp nhiều đầu ra thành một đầu ra duy nhất. Hai lớp tổng hợp phổ biến là tổng hợp tối đa, lấy giá trị tối đa từ đầu ra và tổng hợp trung bình, tính trung bình các đầu ra thành một giá trị.

Sau một hoặc nhiều lớp tích chập/lớp tổng hợp, một lớp được kết nối đầy đủ được sử dụng để kết hợp và làm phẳng các đầu ra từ lớp trước đó và đưa chúng vào một lớp đầu ra để phân loại hình ảnh. Hình dưới đây cho thấy kiến trúc của một CNN:


Đào tạo các mô hình dựa trên CNN có thể mang lại hiệu quả cao vì nó có khả năng hoạt động song song cao. Mặc dù nó chủ yếu được sử dụng cho các tác vụ thị giác máy tính, nhưng chúng ta cũng thấy rằng nó có thể được áp dụng cho các tác vụ không phải thị giác máy tính, chẳng hạn như xử lý ngôn ngữ tự nhiên.

ResNet

Khi các tác vụ thị giác máy tính ngày càng trở nên phức tạp, việc thêm nhiều lớp sẽ giúp CNN mạnh hơn trong việc phân loại hình ảnh, khi nhiều lớp đó sẽ dần dần tìm hiểu các tính năng phức tạp hơn của hình ảnh. Tuy nhiên, khi nhiều lớp được thêm vào kiến trúc CNN, hiệu suất của CNN sẽ giảm đi. Đây còn được gọi là vấn đề độ dốc giảm dần, có nghĩa là các tín hiệu từ đầu vào ban đầu (bao gồm cả các tín hiệu quan trọng) bị mất khi chúng được xử lý bởi các lớp khác nhau của CNN.

Mạng dư (Residual network - ResNet) giúp giải quyết vấn đề này bằng cách giới thiệu kỹ thuật bỏ qua lớp. Thay vì xử lý tín hiệu theo từng lớp, ResNet cung cấp một đường dẫn khác giúp bỏ qua các lớp. Bạn có thể coi kết nối đó giống như đường cao tốc bỏ qua các lối ra cục bộ. Vì vậy, các tín hiệu từ các lớp trước đó được chuyển qua mà không bị mất. Hình dưới đây mô tả kiến trúc của ResNet:


ResNet có thể được sử dụng cho các tác vụ thị giác máy tính khác nhau như phân loại hình ảnh, phát hiện đối tượng (phát hiện tất cả các đối tượng trong ảnh) và tạo ra các mô hình có độ chính xác cao hơn nhiều so với mạng CNN truyền thống.

Các thuật toán cho bài toán xử lý ngôn ngữ tự nhiên (Natural Language Processing)

NLP là nghiên cứu về sự tương tác giữa máy tính và ngôn ngữ của con người. Cụ thể, đó là việc xử lý và phân tích một lượng lớn dữ liệu ngôn ngữ tự nhiên. Mục tiêu là để máy tính hiểu ý nghĩa của ngôn ngữ con người và trích xuất thông tin hữu ích cho dữ liệu ngôn ngữ đó. NLP là một lĩnh vực quan trọng của khoa học dữ liệu lớn. Có nhiều nhiệm vụ NLP, chẳng hạn như phân loại tài liệu, lập mô hình phân loại chủ đề, chuyển lời nói thành văn bản, chuyển văn bản thành giọng nói, trích xuất đối tượng dữ liệu, dịch ngôn ngữ, đọc hiểu, tạo ra ngôn ngữ, đặt câu hỏi và trả lời.

Các thuật toán ML không thể xử lý trực tiếp dữ liệu văn bản thô. Để đào tạo các mô hình NLP, các từ trong văn bản đầu vào cần được chuyển đổi thành các biểu diễn số trong ngữ cảnh của các từ, câu hoặc tài liệu khác. Hai phương pháp phổ biến để biểu diễn các từ và mức độ liên quan của chúng trong văn bản là túi từ (Bag-Of-Words - BOW) và tần số thuật ngữ–tần số tài liệu nghịch đảo (Term Frequency–Inverse Document FrequencyTF-IDF).

BOW chỉ đơn giản là số lượng từ xuất hiện trong văn bản (tài liệu). Ví dụ: Nếu tài liệu đầu vào là  I need to go to the bank to make a deposit and I am taking a walk along the river bank, và sau đó ta đếm số lần xuất hiện của mỗi từ trong tài liệu đầu vào, bạn sẽ nhận được giá trị 1 cho từ I và 3 cho từ to trong tài liệu đầu vào. Nếu chúng ta có một bộ từ vựng cho tất cả các từ duy nhất trong hai tài liệu, biểu diễn vectơ cho tài liệu đầu tiên có thể là [1 1 3 1 1 1 1 1 1 0 0 0 0 0], trong đó mỗi vị trí biểu thị một từ duy nhất trong bộ từ vựng (ví dụ: vị trí đầu tiên đại diện cho từ I và vị trí thứ ba đại diện cho từ to). Giờ đây, vectơ này có thể được đưa vào thuật toán ML để đào tạo một mô hình, chẳng hạn như phân loại văn bản. Ý tưởng chính đằng sau BOW là một từ xuất hiện thường xuyên hơn sẽ có trọng số mạnh hơn trong văn bản.

TF-IDF có hai thành phần. Thành phần đầu tiên, TF, là tỷ lệ số lần một từ vựng xuất hiện trong tài liệu trên tổng số từ trong tài liệu. Sử dụng câu phía trên, từ I sẽ có giá trị TF là 1/11 cho câu đầu tiên và từ walk sẽ có giá trị TF là 0/11, vì Walk không xuất hiện trong câu đầu tiên. Trong khi TF đo tầm quan trọng của một từ trong ngữ cảnh của một văn bản, thì thành phần IDF đo tầm quan trọng của một từ trong tất cả các ngữ cảnh. Về mặt toán học, nó là ghi chú của tỷ lệ số lượng tài liệu trên số lượng tài liệu mà một từ xuất hiện. Giá trị cuối cùng của TF-IDF cho một từ sẽ là giá trị TF nhân với giá trị IDF. Một cách tổng quát thì TF-IDF hoạt động tốt hơn BOW.

Mặc dù các kỹ thuật như BOW và TF-IDF là những cách thể hiện tốt cho các bài toán NLP, nhưng chúng không nắm bắt được bất kỳ thông tin nào về ý nghĩa ngữ nghĩa của từ này. Chúng cũng dẫn đến việc các vectơ đầu vào rất lớn và thưa thớt. Lúc này khái niệm nhúng (Embedding) xuất hiện.

Nhúng là kỹ thuật tạo ra các biểu diễn ít chiều (các vectơ toán học của các số thực) cho các từ hoặc câu nắm bắt được ý nghĩa ngữ nghĩa của văn bản. Trực giác đằng sau kỹ thuật nhúng là các thực thể ngôn ngữ đó có ý nghĩa ngữ nghĩa tương tự xuất hiện thường xuyên hơn trong các bối cảnh tương tự. Các biểu diễn toán học cho các thực thể giống nhau về mặt ngữ nghĩa sẽ gần nhau hơn so với các thực thể có ý nghĩa ngữ nghĩa khác nhau trong một không gian nhiều chiều. Ví dụ, nếu bạn có một số từ đại diện cho các môn thể thao như bóng đá, quần vợt và xe đạp, thì các phần nhúng của chúng sẽ gần nhau (được đo bằng các số liệu khoảng cách như độ tương tự cosine https://vi.wikipedia.org/wiki/%C4%90%E1%BB%99_t%C6%B0%C6%A1ng_t%E1%BB%B1_cosin giữa các phần nhúng đó) trong không gian nhiều chiều được biểu thị bằng nhúng. Bạn có thể coi véc-tơ nhúng đại diện cho ý nghĩa vốn có của từ và mỗi thứ nguyên trong véc-tơ đại diện cho một thuộc tính được tạo sẵn về từ đó. Sơ đồ sau đây là một mô tả trực quan về ý nghĩa của việc ở gần hơn trong không gian đa chiều:

Hầu hết các bài toán NLP hiện nay đều dựa vào nhúng như một điều kiện tiên quyết để đạt được kết quả tốt, vì nhúng cung cấp nhiều biểu diễn văn bản cơ bản có ý nghĩa hơn so với các kỹ thuật khác (chẳng hạn như số lượng từ trong văn bản). Có một số thuật toán ML cho các nhiệm vụ NLP khác nhau. Tiếp theo, chúng ta hãy xem xét thêm một số thuật toán.

Word2Vec

Thomas Mikolov đã tạo ra Word2Vec vào năm 2013. Nó hỗ trợ hai kỹ thuật học tập nhúng (learning embedding) khác nhau: Túi từ liên tục (Continuous Bag-Of-Words - CBOW) và liên tục bỏ qua gam. CBOW cố gắng dự đoán một từ cho một khung quan sát nhất định gồm các từ xung quanh và liên tục-bỏ qua-gam cố gắng dự đoán các từ xung quanh cho một từ nhất định. Tập dữ liệu đào tạo cho Word2Vec có thể là bất kỳ văn bản đang chạy nào có sẵn, chẳng hạn như trên Wikipedia. Quá trình tạo tập dữ liệu huấn luyện cho CBOW là chạy một khung từ trượt trên văn bản đang chạy (ví dụ: khung từ có năm từ) và chọn một trong các từ làm mục tiêu và các từ còn lại làm đầu vào (thứ tự của các từ không được xem xét ). Trong trường hợp bỏ qua-gram liên tục, mục tiêu và đầu vào được đảo ngược. Với tập dữ liệu huấn luyện, bài toán có thể được biến thành một bài toán phân loại nhiều lớp, trong đó mô hình sẽ học cách dự đoán các lớp (ví dụ: các từ trong từ vựng) cho từ mục tiêu và gán từng từ dự đoán với phân phối xác suất.

Mạng MLP (Xem phần trước) một lớp ẩn đơn giản có thể được sử dụng để đào tạo các nhúng Word2Vec. Đầu vào của mạng MLP sẽ là một ma trận đại diện cho các từ xung quanh và đầu ra sẽ là phân phối xác suất cho các từ mục tiêu. Trọng số học được cho lớp ẩn sẽ là phần nhúng thực tế cho từ sau khi nó được đào tạo và tối ưu hóa đầy đủ.

Vì việc đào tạo nhúng từ quy mô lớn có thể tốn kém và tốn thời gian, nên các nhúng Word2Vec thường được đào tạo như một nhiệm vụ đào tạo trước để chúng có thể sẵn sàng được sử dụng cho các tác vụ tiếp theo như phân loại văn bản hoặc trích xuất thực thể. Cách tiếp cận sử dụng các phần nhúng này làm tính năng cho các tác vụ xuôi dòng được gọi là ứng dụng dựa trên tính năng. Có các phần nhúng được đào tạo trước (ví dụ: Word2Vec của Tomas Mikolov và GloVe của Stanford) trong phạm vi đại chúng có thể được sử dụng trực tiếp. Các phần nhúng là ánh xạ 1:1 giữa mỗi từ và biểu diễn vectơ của nó

Mạng thần kinh tái phát (Recurrent neural networks - RNN) và bộ nhớ ngắn hạn dài (Long short-term memory LSTM)

Vì ngôn ngữ xuất hiện dưới dạng các chuỗi từ nên nó cần được lập mô hình như vậy để nắm bắt được mối quan hệ về thời gian của các từ khác nhau trong một chuỗi. RNN là một mạng thần kinh đã được sử dụng rộng rãi cho các tác vụ ML liên quan đến ngôn ngữ.

Không giống như MLP hoặc CNN, trong đó tất cả dữ liệu đầu vào được nhập cùng một lúc và có thể được xử lý song song, RNN nhận và xử lý một điểm dữ liệu đầu vào tại một thời điểm (được gọi là mã thông báo) theo trình tự trong một đơn vị gọi là ô và đầu ra từ ô được sử dụng làm đầu vào cho ô tiếp theo, ngoài điểm dữ liệu tiếp theo trong chuỗi đầu vào. Số lượng ô trong chuỗi phụ thuộc vào độ dài của đầu vào (ví dụ: số lượng từ) và mỗi ô sẽ thực hiện cùng một chức năng. Kiến trúc này cho phép thông tin ngữ nghĩa phụ thuộc lẫn nhau (một từ xuất hiện trong câu phụ thuộc vào các từ trước đó trong câu để thiết lập nghĩa ngữ nghĩa của nó) được truyền từ ô xử lý này sang ô xử lý khác. Hình dưới đây cho thấy RNN trông như thế nào:


Khả năng tìm hiểu các mối quan hệ ngữ nghĩa giữa các chuỗi ký tự hoặc từ làm cho RNN trở thành một thuật toán phổ biến để lập mô hình ngôn ngữ, trong đó mục tiêu là tạo mã thông báo ngôn ngữ tiếp theo (ví dụ: ký tự hoặc từ) cho một chuỗi mã thông báo trước đó.

RNN cũng có khả năng tóm tắt một chuỗi (ví dụ: một câu) và nắm bắt ý nghĩa vốn có của chuỗi thành một biểu diễn vectơ có độ dài cố định. Điều này làm cho RNN phù hợp với các tác vụ ngôn ngữ, chẳng hạn như dịch ngôn ngữ hoặc tóm tắt, trong đó mục tiêu là lấy ý nghĩa ngữ nghĩa của một câu trong một ngôn ngữ và biểu thị cùng một ý nghĩa trong một ngôn ngữ khác hoặc tóm tắt các câu dài hơn thành các câu ngắn hơn ngắn gọn hơn. câu. Khả năng tóm tắt các câu thành các vectơ có độ dài cố định này cũng làm cho RNN trở nên hữu ích cho việc phân loại câu.

Khi được đào tạo cùng với CNN, RNN có thể được sử dụng cho các tác vụ chú thích hình ảnh, trong đó mạng CNN tóm tắt hình ảnh thành các vectơ có độ dài cố định và RNN sử dụng các vectơ để tạo các câu mô tả hình ảnh.

Vì quy trình RNN được nhập theo trình tự nên khó có thể song song hóa các tính toán của nó và đào tạo các mô hình dựa trên RNN mất nhiều thời gian so với CNN hoặc MLP. Tương tự như vấn đề độ dốc biến mất liên quan đến một số lượng lớn các lớp cho CNN vanilla, RNN vanilla cũng gặp phải vấn đề độ dốc biến mất khi chuỗi trở nên dài. Các biến thể RNN như bộ nhớ ngắn hạn dài (LSTM) cho phép truyền các giá trị ẩn bổ sung từ ô này sang ô khác và được lưu trong các ô để nắm bắt thông tin quan trọng trong phần đầu của chuỗi dài.

Đối với các tác vụ NLP như tóm tắt và dịch thuật, để tạo câu mới, RNN (còn được gọi là mạng bộ giải mã) cần tham chiếu trực tiếp mã thông báo đầu vào làm đầu vào bổ sung. Các cơ chế như cơ chế chú ý đã được sử dụng để tham chiếu trực tiếp các mục trong chuỗi đầu vào từ các đầu ra được tạo.

BERT

Word2Vec tạo một biểu diễn nhúng duy nhất cho mỗi từ trong từ vựng và cách nhúng tương tự được sử dụng trong các tác vụ xuôi dòng khác nhau bất kể ngữ cảnh. Như chúng ta biết, một từ có thể mang ý nghĩa hoàn toàn khác nhau trong các ngữ cảnh khác nhau (Từ bank có thể có nghĩa là một tổ chức tài chính hoặc vùng đất dọc theo một vùng nước) và điều này đòi hỏi các nhúng từ coi ngữ cảnh là một phần của quá trình tạo nhúng. 

BERT, viết tắt của đại diện bộ mã hóa hai chiều từ việc chuyển đổi (Bidirectional Encoder Representations from Transformers), là một mô hình ngôn ngữ xem xét ngữ cảnh bằng cách sau:
  • Dự đoán các từ ẩn ngẫu nhiên trong câu (ngữ cảnh) và xem xét thứ tự của các từ. Điều này còn được gọi là mô hình hóa ngôn ngữ.
  • Dự đoán câu tiếp theo từ một câu đã cho.
Được phát hành vào năm 2018, phương pháp nhúng nhận biết ngữ cảnh này cung cấp khả năng thể hiện tốt hơn cho các từ và có thể cải thiện đáng kể các tác vụ ngôn ngữ như đọc hiểu, phân tích cảm tính và phân giải đối tượng được đặt tên. Ngoài ra, BERT tạo các phần nhúng ở cấp độ từ phụ (một đoạn giữa một từ và một ký tự, ví dụ: từ embeddings được chia thành em, bed, ding và s). Điều này cho phép nó xử lý vấn đề ngoài từ vựng (out-of-vocabulary -OOV), một hạn chế khác của Word2Vec, chỉ tạo ra các phần nhúng trên các từ đã biết và sẽ coi các từ OOV đơn giản là không xác định.

Để nhận từ nhúng bằng cách sử dụng BERT, thay vì tra cứu ánh xạ 1:1 như trong trường hợp của Word2Vec, bạn chuyển các câu sang mô hình BERT được đào tạo và sau đó trích xuất động các nhúng. Trong trường hợp này, các nhúng được tạo sẽ được căn chỉnh theo ngữ cảnh của câu. Ngoài việc cung cấp các phần nhúng cho các từ trong câu đầu vào, BERT cũng có thể trả về các phần nhúng cho toàn bộ câu. Hình dưới đây cho thấy các khối xây dựng của mô hình BERT để học cách nhúng bằng cách sử dụng mã thông báo đầu vào. Điều này còn được gọi là đào tạo trước:

Về mặt kiến trúc, BERT chủ yếu sử dụng một khối xây dựng được gọi là máy chuyển đổi (Transformer). Một máy chuyển đổi có một bộ mã hóa và một bộ giải mã bên trong nó, và nó biến đổi một chuỗi đầu vào thành một chuỗi khác. Mỗi bộ mã hóa có hai thành phần:
  • Lớp tự chú ý chủ yếu tính toán độ mạnh của kết nối giữa một mã thông báo (được biểu thị dưới dạng vectơ) và tất cả các mã thông báo khác trong câu đầu vào và kết nối này giúp mã hóa từng mã thông báo. Một cách để suy nghĩ về sự chú ý của bản thân là những từ nào trong câu được kết nối nhiều hơn những từ khác trong câu. Ví dụ: nếu câu đầu vào là The dog crossed a busy street, thì chúng ta sẽ nói các từ dogcross có mối liên hệ chặt chẽ hơn với từ The so với từ abusy, những từ này sẽ có mối liên hệ chặt chẽ với từ street. Đầu ra của lớp tự chú ý là một chuỗi các vectơ; mỗi vectơ đại diện cho mã thông báo đầu vào ban đầu cũng như tầm quan trọng của nó với các từ khác trong đầu vào.
  • Lớp mạng chuyển tiếp nguồn cấp dữ liệu (MLP lớp ẩn đơn) trích xuất biểu diễn cấp cao hơn từ đầu ra của lớp tự chú ý.
Bên trong bộ giải mã còn có lớp tự chú ý và lớp chuyển tiếp nguồn cấp dữ liệu, cùng với lớp bộ mã hóa-giải mã bổ sung giúp bộ giải mã tập trung vào đúng vị trí trong đầu vào. Trong trường hợp BERT, chỉ phần mã hóa của máy chuyển đổi được sử dụng. BERT có thể được sử dụng cho một số tác vụ NLP, bao gồm trả lời câu hỏi, phân loại văn bản, trích xuất thực thể được đặt tên và tóm tắt văn bản. Nó đã đạt được hiệu suất tối tân trong nhiều nhiệm vụ khi nó được phát hành. Huấn luyện trước BERT cũng đã được áp dụng cho các lĩnh vực khác nhau, chẳng hạn như văn bản khoa học và văn bản y sinh, để hiểu các ngôn ngữ dành riêng cho từng lĩnh vực. Hình dưới đây cho thấy cách một mô hình BERT được đào tạo trước được sử dụng để đào tạo một mô hình cho nhiệm vụ trả lời câu hỏi bằng cách sử dụng kỹ thuật tinh chỉnh:
Mặc dù các nhúng được đào tạo trước của BERT có thể được trích xuất cho các tác vụ xuôi hướng như phân loại văn bản và trả lời câu hỏi, nhưng một cách đơn giản hơn để sử dụng các nhúng được đào tạo trước của nó là thông qua một kỹ thuật gọi là tinh chỉnh. Với tinh chỉnh, một lớp đầu ra bổ sung được thêm vào mạng BERT để thực hiện một tác vụ cụ thể, chẳng hạn như trả lời câu hỏi hoặc trích xuất thực thể. Trong quá trình tinh chỉnh, mô hình được đào tạo trước được tải và bạn cắm đầu vào dành riêng cho nhiệm vụ (ví dụ: các cặp câu hỏi/đoạn văn trong phần trả lời câu hỏi) và đầu ra (bắt đầu/kết thúc và khoảng cách cho các câu trả lời trong đoạn văn) để tinh chỉnh một mô hình nhiệm vụ cụ thể. Với tinh chỉnh, trọng số mô hình được đào tạo trước sẽ được cập nhật.

Máy chuyển đổi được đào tạo trước (Generative pre-trained transformer - GPT)

Không giống như BERT, yêu cầu tinh chỉnh bằng cách sử dụng tập dữ liệu lớn dành riêng cho các tác vụ NLP lớp dưới khác nhau, Generative Pre-training Transformer (GPT), do OpenAI phát triển, có thể học cách thực hiện một tác vụ chỉ bằng cách xem một vài ví dụ (hoặc không có ví dụ). Quá trình học tập này được gọi là học tập ít lần hoặc học tập không cần thiết. Trong một tình huống ngắn, mô hình GPT được cung cấp một vài ví dụ, mô tả tác vụ và lời nhắc, đồng thời mô hình sẽ sử dụng các đầu vào này và bắt đầu tạo từng mã thông báo đầu ra. Ví dụ: khi sử dụng GPT-3 cho tác vụ dịch thuật, một ví dụ về định nghĩa tác vụ là dịch tiếng Anh sang tiếng Trung. Dữ liệu đào tạo sẽ là một vài ví dụ về câu tiếng Trung được dịch từ câu tiếng Anh. Để sử dụng mô hình được đào tạo để dịch một câu tiếng Anh mới, bạn cung cấp câu tiếng Anh dưới dạng lời nhắc và mô hình sẽ tạo văn bản dịch bằng tiếng Trung. Lưu ý rằng, không giống như kỹ thuật tinh chỉnh, học vài lần hoặc không lần nào không cập nhật trọng số cho mô hình tham số.

GPT cũng sử dụng Transformer làm hạt nhân chính của mình và nó được đào tạo bằng cách sử dụng dự đoán từ tiếp theo – nghĩa là, với một chuỗi các từ đầu vào, nó dự đoán từ sẽ xuất hiện ở cuối chuỗi. Không giống như BERT, sử dụng khối bộ mã hóa Transformer, GPT chỉ sử dụng khối bộ giải mã Transformer. Tương tự như BERT, GPT cũng sử dụng các từ ẩn để tìm hiểu các nhúng. Tuy nhiên, nó khác BERT ở chỗ nó không chọn ngẫu nhiên các từ bị che và dự đoán các từ bị thiếu. Thay vào đó, nó không cho phép phép tính tự chú ý có quyền truy cập vào các từ ở bên phải của từ mục tiêu được tính – điều này có thể được gọi là tự chú ý bị ẩn.

GPT-3 và nó đã cho thấy kết quả rất ấn tượng trong một số nhiệm vụ NLP truyền thống, chẳng hạn như lập mô hình ngôn ngữ, dịch ngôn ngữ và trả lời câu hỏi, cũng như nhiều trường hợp sử dụng mới, chẳng hạn như tạo mã lập trình hoặc viết trang web và vẽ biểu đồ.

Thuật toán phân bổ Dirichlet tiềm ẩn

Lập mô hình chủ đề là quá trình khám phá các chủ đề phổ biến từ một số lượng lớn tài liệu và xác định chủ đề hàng đầu mà tài liệu đó chứa. Một chủ đề thường được trình bày bởi các từ hàng đầu liên quan. Ví dụ: một chủ đề liên quan đến thể thao có thể có các từ như thể thao, cầu thủ, huấn luyện viên.... Mô hình hóa chủ đề là một kỹ thuật xử lý ngôn ngữ tự nhiên rất quan trọng để hiểu tài liệu, truy xuất thông tin, gắn thẻ và phân loại tài liệu. Một tài liệu có thể có một hoặc nhiều chủ đề trình bày trong nội dung. Hình dưới đây cho thấy mối quan hệ giữa một tài liệu và các chủ đề khác nhau được liên kết với tài liệu:

Phân bổ Dirichlet tiềm ẩn (Latent Dirichlet Allocation - LDA) là một trong những thuật toán ML phổ biến nhất để lập mô hình chủ đề. Nó hoạt động bằng cách tính xác suất của một từ thuộc về một chủ đề và xác suất của một chủ đề thuộc về một tài liệu. Chúng ta sẽ giải thích cách thức hoạt động của khái niệm này bằng một ví dụ. Giả sử bạn có một số lượng lớn tài liệu và khi xem qua các tài liệu này, bạn muốn xác định các từ thường xuất hiện cùng nhau trong các cụm từ. Dựa trên số lượng từ xuất hiện trong một cụm, bạn có thể tính toán xác suất của các từ khác nhau thuộc một cụm (chủ đề). Những từ có xác suất cao sẽ được coi là những từ hàng đầu đại diện cho một chủ đề. Với một chủ đề được xác định, bạn cũng có thể tính toán xác suất của một chủ đề thuộc về một tài liệu. Với LDA, bạn chỉ định số lượng chủ đề sẽ được khám phá làm đầu vào và đầu ra của LDA là danh sách các chủ đề có các từ hàng đầu được cân nhắc theo xác suất của chúng và danh sách các chủ đề được liên kết với từng tài liệu.
LDA có nhiều ứng dụng thực tế trong thế giới thực, chẳng hạn như tóm tắt một số lượng lớn tài liệu thành danh sách các chủ đề hàng đầu và tự động gắn thẻ và phân loại tài liệu. LDA là một thuật toán không được giám sát và nó tự động phát hiện ra các chủ đề. Nhược điểm của nó là khó đo lường chất lượng tổng thể của mô hình (nghĩa là khó biết liệu các chủ đề được tạo có cung cấp thông tin hay không). Bạn cũng cần điều chỉnh số lượng chủ đề và diễn giải kết quả bằng tên mà con người có thể đọc được cho từng chủ đề do mô hình tạo ra.

Mô hình sinh (Generative model)

Mô hình sinh là một loại mô hình ML có thể tạo dữ liệu mới. Ví dụ: BERT và GPT là các mô hình sinh vì chúng có thể tạo văn bản mới. Các mô hình ML như hồi quy tuyến tính hoặc MLP được gọi là mô hình phân biệt ở chỗ chúng phân biệt giữa các loại trường hợp dữ liệu khác nhau, chẳng hạn như phân loại thứ gì đó thành một lớp hoặc những thứ khác. Các mô hình sinh mô hình hóa xác suất hợp, trong khi mô hình phân biệt mô hình hóa xác suất có điều kiện.

Mạng sinh đối nghịch (Generative adversarial network-GAN)

Mạng sinh đối nghịch (GAN) là một mô hình tổng quát cố gắng tạo ra các trường hợp dữ liệu thực tế, chẳng hạn như hình ảnh. Nó hoạt động bằng cách có một mạng phân biệt (Discriminator) học để biết liệu các phiên bản được tạo bởi máy sinh (Generator) là thật hay giả:
Trong quá trình đào tạo, mạng Discriminator được cung cấp hai nguồn dữ liệu – một từ nguồn thực, được sử dụng làm ví dụ dương tính và một từ nguồn Sinh tạo, các mẫu âm tính. Bộ phân biệt sẽ được đào tạo để phân biệt mẫu thật với mẫu giả dưới dạng bộ phân loại và nó sẽ tối ưu hóa tổn thất để dự đoán chính xác mẫu thật/giả từ cả hai nguồn. Mặt khác, nguồn tạo sinh sẽ được đào tạo để tạo dữ liệu giả mà Người phân biệt không thể biết là giả hay thật và nó sẽ bị phạt khi Người phân biệt có thể cho biết dữ liệu được tạo của nó là giả. Cả hai mạng đều học bằng cách sử dụng backpropagation. Để tạo dữ liệu, Sinh tạo được cung cấp các đầu vào ngẫu nhiên. Trong quá trình đào tạo, Sinh tạo và Bộ phân biệt được đào tạo thay thế để cho phép cả hai mạng đào tạo như một mạng được kết nối duy nhất. GAN gần đây đã đạt được nhiều thành công trong việc tạo ra những hình ảnh chân thực có thể đánh lừa con người. Ví dụ: nó có thể được áp dụng cho nhiều ứng dụng, chẳng hạn như dịch các bản phác thảo thành hình ảnh trông giống như thật, chuyển đổi kiểu nhập văn bản và tạo hình ảnh tương ứng với văn bản cũng như tạo khuôn mặt người thực.

Chúng ta đã đi qua phần tổng quan về các thuật toán ML và các mạng học sâu. Trong loạt bài tiếp theo, chúng ta sẽ nói về các vấn đề khác. 

Liên hệ

Tên

Email *

Thông báo *