Khái niệm về học chuyển đổi – Transfer learning Transfer learning là một phương pháp trong máy học và trí tuệ nhân tạo AI mà mô hình được huấn luyện trước đó trên một tập dữ liệu lớn gọi
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BỘ MÔN PHÁT TRIỂN KỸ NĂNG
BÀI BÁO CÁO
XỬ LÍ ẢNH
Giảng viên: Phạm Văn Sự
Tên sinh viên: Phạm Thanh Tú
Mã sinh viên: B20DCCN610 Nhóm bài tập: 10
Mã đề: DIPFL23PRJ49
HÀ NỘI, THÁNG 12/2023
Trang 2I Tổng quan về học chuyển đổi
1 Lịch sử ra đời
Lịch sử của Transfer learning bắt đầu từ năm 1993 Với bài báo“Discriminability-Based Transfer between Neural Networks”, Lorien Pratt đã giới thiệu với thế giới về tiềm năng của học chuyển đổi Vào tháng 7 năm 1997, tạp chí Machine Learning đã xuất bản một số đặc biệt cho các bài báo về Transfer learning Khi lĩnh vực này phát triển, các chủ đề có liên quan như học đa tác vụ (multi-task learning) cũng được đưa vào lĩnh vực học chuyển đổi Learning to Learn là một trong những cuốn sách tiên phong trong lĩnh vực này Ngày nay, học chuyển đổi là một nguồn lực mạnh mẽ để các công ty công nghệ xây dựng những giải pháp AI mới và các nhà nghiên cứu tiếp tục thúc đẩy giới hạn của học máy
2 Khái niệm về học chuyển đổi – Transfer learning
Transfer learning là một phương pháp trong máy học và trí tuệ nhân tạo (AI) mà mô hình được huấn luyện trước đó trên một tập dữ liệu lớn (gọi là pre-trained model) và sau đó được chuyển giao (transfer) để thực hiện một nhiệm vụ khác mà không cần huấn luyện lại từ đầu Phương pháp này giúp tận dụng tri thức đã học được từ một nhiệm vụ để giải quyết một nhiệm vụ liên quan mà không yêu cầu dữ liệu lớn như nhiệm vụ gốc
Ngoài khái niệm trên còn khái niệm dễ hiểu hơn ở chương 11 Học chuyển đổi trong Sổ tay nghiên cứu về ứng dụng học máy được xuất bản năm 2009 như sau:
“Học chuyển đổi là sự cải thiện việc học trong một nhiệm vụ mới thông qua việc chuyển giao kiến thức từ một nhiệm vụ liên quan
đã được học.”
Học chuyển đổi có liên quan đến các vấn đề như học đa tác vụ
và trôi dạt khái niệm và không chỉ là một lĩnh vực nghiên cứu dành cho học sâu
Tuy nhiên, học chuyển đổi rất phổ biến trong học sâu do cần
có nguồn lực khổng lồ để đào tạo các mô hình học sâu hoặc các bộ
dữ liệu lớn và đầy thách thức mà các mô hình học sâu được đào tạo trên đó
Học chuyển chỉ hoạt động trong học sâu nếu các đặc điểm mô hình học được từ nhiệm vụ đầu tiên là chung chung
Trang 3Trong học chuyển đổi, trước tiên huấn luyện mạng cơ sở trên tập dữ liệu và tác vụ cơ sở, sau đó sử dụng lại các tính năng đã học hoặc chuyển chúng sang mạng mục tiêu thứ hai để được huấn luyện về tập dữ liệu và tác vụ đích.eQuá trình này sẽ có xu hướng hoạt động nếu các tính năng mang tính chung chung, nghĩa là phù hợp với cả nhiệm vụ cơ bản và mục tiêu, thay vì cụ thể cho nhiệm
vụ cơ bản
Đây là một ví dụ cơ bản học chuyển đổi – transfer learning,
đó là về học máy hình ảnh:
Nhiệm vụ cơ bản: Một mô hình Convolutional Neural Network (CNN) được xây dựng và huấn luyện trên một tập
dữ liệu lớn của hình ảnh y học, chẳng hạn như hình ảnh chụp từ máy quét MRI hoặc máy quét CT Tập dữ liệu này được gán nhãn cho nhiều loại bệnh, chẳng hạn như ung thư, các bệnh lý tim mạch, hay các vấn đề về xương khớp
Transfer learning: Tập dữ liệu này được gán nhãn cho nhiều loại bệnh, chẳng hạn như ung thư, các bệnh lý tim mạch, hay các vấn đề về xương khớp Mô hình có thể được fine-tuned (tinh chỉnh) trên một số ít ảnh từ máy quét cụ thể trong bệnh viện mới, giúp mô hình thích ứng với đặc điểm cụ thể của máy quét và điều kiện đặc biệt tại bệnh viện đó
3 Cơ chế hoạt động của Transfer turning
Có 2 cách tiếp cận phổ biến tới Transfer Learning như sau:
Phương pháp tiếp cận mô hình
Phương pháp tiếp cận Pre-Trained Model(mô hình được đào tạo từ trước)
Hoạt động của Transfer turning dựa trên 3 cơ chế, cụ thể như sau:
Chọn mô hình nguồn (Source Model)e:
o Mô hình nguồn là mô hình do người khác xây dựng, huấn luyện nhằm giải quyết một vấn đề tương tự Mô hình nguồn thường là mô hình của những gã khổng lồ công nghệ hoặc nhóm các nhà khoa học nổi tiếng
o Thông thường, mô hình nguồn được sử dụng thường
là tập dữ liệu rất lớn để làm dữ liệu cơ sở như: ImageNet hoặc Wikipadia Corpus Sau đó, dựa vào
mô hình nguồn, họ sẽ phát triển một mạng thần kinh lớn để giải quyết vấn đề cụ thể Mô hình nguồn được
Trang 4chọn phải được công khai và được cho phép tái sử dụng
Tùy chỉnh mô hình(Fine-tuning)
o Sau khi tiếp cận được mô hình nguồn, bạn có thể dùng kiến thức mà mô hình đã học như kiến thức về lớp, tính năng, trọng số, hệ số tự do Hoặc bạn có thể tải mô hình nguồn vào môi trường của mình, biến nó trở thành một tệp/thư mục có chứa thông tin liên quan sau đó tùy chỉnh mô hình của mình Tuy nhiên, trước tiên hãy ưu tiên tùy chỉnh các viện học sâu lưu trữ nhiều mô hình trước như: TensorFlow Hub, Keras Applications, PyTorch Hub,…
o Có thể sử dụng một trong các nguồn trên để tải mô hình nguồn vào mô hình của mình Khi đó, mô hình nguồn thường đi kèm với tất cả các lớp, trọng số và bạn có thể tùy ý chỉnh sửa mô hình theo ý muốn Việc tùy chỉnh mô hình có nhằm mục đích nâng cao độ chính xác của chúng đồng thời đảm bảo đầu ra đúng định dạng
Áp dụng cho tác vụ mới (Inference)
o Trong một mạng thần kinh, các lớp dưới cùng và lớp giữa sẽ đại diện cho các tính năng chung Trong khi đó các lớp trên cùng thể hiện các tính năng cụ thể của bài toán trong mô hình đó Do đó, bài toán mới của mô hình mới sẽ khác với bài toán ban đầu từ mô hình nguồn
o Chính vì thế, bạn cần thêm vào các tác vụ mới, loại bỏ các lớp trên cùng để bài toán của mình có độ chính xác cao hơn Sau đó, bạn có thể định cấu hình mô hình bằng trình tối ưu hóa đặc biệt
4 Lợi ích và hạn chế
a) Lợi ích
Thời gian
Việc sử dụng Pretrained Model bản thân nó không chỉ giúp giảm thời gian vào việc tạo ra một mô hình mới để thực hiện một nhiệm vụ mục tiêu mà dựa trên một nhiệm vụ nguồn sẵn có, mà còn giảm thời gian đào tạo một model từ đầu vì khối lượng của phần nhiệm vụ nguồn đã có sẵn
Trang 5 Cải thiện độ chính xác và tiết kiệm chi phí huấn luyện
Ví dụ trong bài toán phân loại chó và mèo Nếu huấn luyện từ đầu, bạn sẽ tốn nhiều epochs huấn luyện hơn để đạt được độ chính xác cao Tuy nhiên nếu bạn biết tận dụng lại các pretrained-model thì sẽ cần ít epochs huấn luyện hơn để đạt được một độ chính xác mong đợi Thậm chí độ chính xác có thể lớn hơn so với khi không áp dụng transfer learning
Sơ đồ so sánh hiệu suất mô hình trước và sau khi áp dụng transfer
learning (Nguồn: eHandbook Of Research On Machine Learning Applications and Trends: Algorithms, Methods and Techniques)
Từ đồ thị ta có thể thấy sử dụng transfer learning sẽ mang lại 3 lợi thế chính:
o Có điểm khởi đầu của accuracy tốt hơn (higher start)
o Accuracy có tốc độ tăng nhanh hơn (higher slope)
o Đường tiệm cận của độ chính xác tối ưu cao hơn (higher asymptote)
Trong trường hợp bộ dữ liệu có kích thước quá nhỏ và khó có thể tìm kiếm và mở rộng thêm thì các mô hình được huấn luyện từ chúng sẽ khó có thể dự báo tốt Tận dụng lại tri thức từ các pretrained-model với cùng tác vụ phân loại sẽ giúp các mô hình được huấn luyện dự báo tốt hơn với dữ liệu mới vì mô hình được học trên cả 2 nguồn tri thức đó là dữ liệu huấn luyện và dữ liệu mà nó đã được học trước đó
b) Hạn Chế
Trang 6Transfer Learning không phải một kỹ thuật dễ sử dụng, nếu bạn sai sót trong quá trình transfer architecture của pretrained hay
thêm/bớt không đúng layer thì khi train, accuracy sẽethấp không tưởng tượng được, khi đó bạn sẽ phải kiểm tra lại quá trình sửa
các layer hoặc làm lại từ đấu.eLưu ý: khi bạn đạt accuracy thấp như vậy, chúng ta không gọi quá trình train là fine-tuning vì nó không phù hợp với định nghĩa
Transfer learning không phải lúc nào cũng phù hợp Trong một số trường hợp, việc huấn luyện ngay từ đầu có thể là lựa chọn tốt hơn
II Phân loại các mô hình
Bên cạnh việc hiểu rõ về lịch sử ra đời của khái niệm Transfer Learning là gì thì chúng ta có thể tìm hiểu sâu hơn về 4 mô hình trong Transfer Learning Dưới đây là 4 mô hình pre-trained phổ biến nhất mà bạn có thể sử dụng cho các tác vụ trong transfer learning:
VGG-19:
VGG là một mạng thần kinh tích chập (CNN) có độ sâu 19 lớp Nó đượcxây dựng và đào tạo bởi Karen Simonyan và Andrew Zisserman tại Đại học Oxford vào năm 2014 Bạn có thể truy cập tất cả thông tin từ bài báo của họ,eVery Deep Convolutional Networks for Large-Scale Image Recognition, được xuất bản vào năm 2015 VGG-19 được đào tạo bằng cách sử dụng hơn 1 triệu hình ảnh từ cơ sở dữ liệu ImageNet, trong đó có các ảnh màu 224×224 pixel Đương nhiên, bạn có thể nhập vào mô hình các trọng số được huấn luyện bởi ImageNet Điểm đặc biệt, VGG-19 có thể phân loại tới 1000 đối tượng Dưới đây là thông tin ngắn gọn về kích thước và hiệu suất của nó:
o Kích thước: 549 MB
o Top-1: Độ chính xác: 71,3%
o Top-5: Độ chính xác: 90,0%
o Số tham số: 143.667.240
o Độ sâu: 26
Trang 7 Inceptionv3(GoogleNet)
Inceptionv3 là một mạng thần kinh tích chập có độ sâu 50 lớp
Nó được xây dựng và đào tạo bởi Google và bạn có thể truy cập tất cả thông tin trên bài báo,có tiêu đề “Going deeper with convolutions” Phiên bản được đào tạo trước của Inceptionv3 với trọng số ImageNet có thể phân loại tới 1000 đối tượng Kích thước hình ảnh đầu vào của mạng này là 299×299 pixel, lớn hơn mạng VGG19 Trong khi VGG19 về nhì trong cuộc thi ImageNet năm 2014 thì Inception là mô hình thắng cuộc Tóm tắt ngắn gọn về các tính năng của Inceptionv3 như sau:
o Kích thước: 92 MB
o Top-1: Độ chính xác: 77,9%
o Top-5: Độ chính xác: 93,7%
o Số tham số: 23.851.784
o Độ sâu: 159
Trang 8 ResNet50(Residual Network)
ResNet50 là một mạng thần kinh tích chập có độ sâu 50 lớp Nó được xây dựng và đào tạo bởi Microsoft vào năm 2015 và bạn có thể truy cập kết quả hoạt động của mô hình trên bài báo có tiêu đềeDeep Residual Learning for Image Recognition Mô hình này cũng được đào tạo trên hơn 1 triệu hình ảnh từ cơ sở dữ liệu ImageNet Cũng giống như VGG-19, nó có thể phân loại tới 1000 đối tượng và mạng được đào tạo trên các hình ảnh có màu 224×224 pixel Dưới đây là thông tin ngắn gọn về kích thước và hiệu suất của nó:
o Kích thước: 98 MB
o Top-1: Độ chính xác: 74,9%
o Top-5: Độ chính xác: 92,1%
o Số tham số: 25.636.712
Nếu so sánh ResNet50 với VGG19, bạn sẽ thấy rằng ResNet50 thực sự vượt trội so với VGG19 mặc dù nó có độ phức tạp thấp hơn ResNet50 đã được cải thiện nhiều lần và bạn cũng có quyền truy cập
nhưeResNet101,eResNet152,eResNet50V2,eResNet101V2,eResNet152V2
Trang 9 EfficientNet
EfficientNet là mạng thần kinh tích chập tiên tiến nhất đã được Google đào tạo và phát hành ra công chúng với bài báo “EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks”evào năm
2019 Có 8 phiên bản thay thế của EfficientNet (B0 đến B7) và ngay cả phiên bản đơn giản nhất, EfficientNetB0, cũng xuất sắc Với 5,3 triệu tham số, nó đạt hiệu suất chính xác Top-1 77,1% Tóm tắt ngắn gọn về các tính năng của EfficientNetB0 như sau:
o Kích thước: 29 MB
o Top-1: Độ chính xác: 77,1%
o Top-5: Độ chính xác: 93,3%
o Số tham số: ~5.300.000
o Độ sâu: 159
Trang 10Bảng phân loại các mô hình trên:
VGG19 Inceptionv3(Googl
Kiểu
mô
hình
Mạng nơ-ron
tích chập
sâu(CNN)
Mạng nơ-ron tích chập sâu(CNN) Mạng nơ-ron tích
chập sâu(CNN)
Mạng nơ-ron tích chập sâu(CNN) Đặc
điểm đơn giản với Có kiến trúc
nhiều lớp tích
chập và lớp
kết nối đầy đủ
Nổi tiếng với
số lượng lớn
các tầng tích
chập nhỏ với
kernel size là
Nổi tiếng với kiến trúc Inception, sử dụng các module Inception để tăng cường hiệu suất
mà không làm tăng độ sâu của mạng quá nhiều
Cũng sử dụng kiến trúc chập chồng
Sử dụng khái niệm
"residual learning"
để giải quyết vấn
đề biến mất đạo hàm trong quá trình
Được thiết kế
để đảm bảo sự hiệu quả cao đối với cả kích thước mô hình
và độ chính xác Sử dụng một phương pháp đồng thời tinh chỉnh kích
Trang 113x3 và
sâu Điều này giúp giữ cho việc huấn luyện mô hình có thể thực hiện được
dù cho độ sâu của mạng lớn
thước chiều sâu, chiều rộng và độ phân giải
Ứng
dụng
chính
Phân loại hình
ảnh Phân loại hình ảnh,nhận diện đối
tượng
Phân loại hình ảnh, nhận diện đối tượng
Phân lại hình ảnh
Ưu
điểm giản, dễ hiểu,Cấu trúc đơn
dễ triển khai
Sử dụng các module Inception
để cải thiện khả năng trích xuất đặc trưng
Sựng dụng residual blocks để giải quyết vấn đề huấn luyện
mô hình sâu
Cân bằng hiệu suất và tài nguyên tính toán thông qua phương pháp Compound Scaling
III Khái niệm Fine-tuning
1 Fine-tuning là gì?
Trong Machine Learning, Fine-tuning là một phương pháp của transfer learning, sử dụng một mô hình của một pre-trained model để train với một bộ data mới, phù hợp với mục đích của người dùng và số lượng dataset thường nhỏ hơn khi pre-train Việc làm này giúp tăng độ chính xác của model so với việc train trực tiếp với bộ dataset nhỏ của chúng ta
2 Các bước thực hiện học chuyển đổi fine-tuning
Bước 1: Huấn luyện trước một mô hình mạng thần kinh, tức làmô hình nguồn, trên tập dữ liệu nguồn (ví dụ: tập dữ liệu ImageNet)
Bước 2: Tạo một mô hình mạng nơ-ron mới, tức làmô hình đích.Điều này sao chép tất cả các thiết kế mô hình và các tham số của chúng trên mô hình nguồn ngoại trừ lớp đầu ra.Chúng tôi giả định rằng các tham số mô hình này chứa kiến thức đã học được từ tập dữ liệu nguồn và kiến thức này
Trang 12cũng sẽ được áp dụng cho tập dữ liệu đích.Chúng tôi cũng giả định rằng lớp đầu ra của mô hình nguồn có liên quan chặt chẽ với nhãn của tập dữ liệu nguồn;do đó nó không được sử dụng trong mô hình mục tiêu
Bước 3: Thêm một lớp đầu ra vào mô hình đích, có số lượng đầu ra là số danh mục trong tập dữ liệu đích.Sau đó khởi tạo ngẫu nhiên các tham số
mô hình của lớp này
Bước 4: Huấn luyện mô hình mục tiêu trên tập dữ liệu đích, chẳng hạn như tập dữ liệu về ghế.Lớp đầu ra sẽ được huấn luyện từ đầu, trong khi các tham số của tất cả các lớp khác sẽ được tinh chỉnh dựa trên các tham số của mô hình nguồn
IV Ứng dụng của học chuyển đổi-transfer learning
1 Nhận dạng hình ảnh
Một trong những ứng dụng phổ biến và thành công nhất của học chuyển giao trong mạng lưới thần kinh là nhận dạng hình ảnh.eNhận dạng hình ảnh là nhiệm vụ xác định và phân loại các vật thể, khuôn mặt, cảnh vật hoặc cảm xúc trong hình ảnh.eCó nhiều mạng thần kinh được đào tạo trước đã được đào tạo trên các bộ dữ liệu hình ảnh lớn và đa dạng, chẳng hạn như ImageNet hoặc COCO, có thể được sử dụng làm công cụ trích xuất đặc điểm hoặc tinh chỉnh cho các tác vụ nhận dạng hình ảnh mới.eVí dụ: bạn có thể sử dụng mạng được đào tạo trước như ResNet hoặc VGG để trích xuất các đặc điểm từ hình ảnh của riêng bạn, sau đó thêm lớp phân loại mới lên trên để đào tạo về vấn đề nhận dạng hình ảnh cụ thể của bạn, chẳng hạn như nhận dạng giống chó hoặc chẩn đoán hình ảnh y tế
2 Xử lý ngôn ngữ tự nhiên
Một ứng dụng phổ biến và hữu ích khác của học chuyển tiếp trong mạng lưới thần kinh là xử lý ngôn ngữ tự nhiên (NLP).eNLP là nhiệm vụ hiểu và tạo ra ngôn ngữ tự nhiên, chẳng hạn như văn bản hoặc lời nói.eCó nhiều mạng thần kinh được đào tạo trước đã được đào tạo trên kho văn bản lớn và đa dạng, chẳng hạn như Wikipedia hoặc Common Crawl, có thể được sử dụng làm mô hình ngôn ngữ hoặc tinh chỉnh cho các tác vụ NLP mới.eVí dụ: bạn có thể sử dụng mạng được đào tạo trước như BERT hoặc GPT để mã hóa văn bản của riêng mình, sau đó thêm lớp đầu ra mới lên trên để đào tạo về vấn đề NLP cụ thể của bạn, chẳng hạn như phân tích tình cảm, tóm tắt văn bản hoặc trả lời câu hỏi
3 Học tăng cường
Ứng dụng phổ biến và thú vị thứ ba của học chuyển giao trong mạng lưới thần kinh là học tăng cường (RL).eRL là nhiệm vụ học hỏi từ việc thử và sai, bằng cách tương tác với môi trường và nhận phần thưởng hoặc hình phạt.eCó nhiều mạng thần kinh được đào tạo trước đã được đào tạo trên các môi trường RL khác nhau, chẳng hạn như trò chơi Atari hoặc mô phỏng robot, có thể được sử dụng làm chính sách hoặc chức năng giá trị hoặc tinh chỉnh cho các nhiệm vụ RL mới.eVí dụ: bạn có thể sử dụng mạng được đào tạo trước như DQN hoặc PPO để khởi tạo mạng của riêng mình, sau đó tiếp tục đào tạo về vấn đề RL cụ thể của mình, chẳng hạn như ô tô tự lái hoặc chơi cờ