Tại sao sử dụng nhãn giả không ảnh hưởng đến kết quả?


18

Tôi đã xem xét các phương pháp học bán giám sát và đã bắt gặp khái niệm "dán nhãn giả".

Theo tôi hiểu, với việc gắn nhãn giả, bạn có một bộ dữ liệu được gắn nhãn cũng như một bộ dữ liệu chưa được gắn nhãn. Trước tiên, bạn đào tạo một mô hình chỉ trên dữ liệu được dán nhãn. Sau đó, bạn sử dụng dữ liệu ban đầu đó để phân loại (đính kèm nhãn tạm thời vào) dữ liệu chưa được gắn nhãn. Sau đó, bạn đưa cả dữ liệu được gắn nhãn và không nhãn vào đào tạo mô hình của bạn, (phù hợp) với cả nhãn đã biết và nhãn dự đoán. (Lặp lại quy trình này, dán nhãn lại với mô hình đã cập nhật.)

Các lợi ích được yêu cầu là bạn có thể sử dụng thông tin về cấu trúc của dữ liệu chưa được gắn nhãn để cải thiện mô hình. Một biến thể của hình dưới đây thường được hiển thị, "chứng minh" rằng quy trình có thể tạo ra một ranh giới quyết định phức tạp hơn dựa trên vị trí của dữ liệu (không được gắn nhãn).

Ranh giới quyết định trong phương pháp bán giám sát

Hình ảnh từ Wikimedia Commons của Techerin CC BY-SA 3.0

Tuy nhiên, tôi không hoàn toàn mua lời giải thích đơn giản đó. Chắc chắn, nếu kết quả đào tạo chỉ có nhãn ban đầu là ranh giới quyết định trên, nhãn giả sẽ được chỉ định dựa trên ranh giới quyết định đó. Điều đó có nghĩa là tay trái của đường cong trên sẽ có màu trắng giả nhãn và tay phải của đường cong dưới sẽ có màu đen giả nhãn. Bạn sẽ không có được ranh giới quyết định cong đẹp sau khi đào tạo lại, vì các nhãn giả mới sẽ đơn giản củng cố ranh giới quyết định hiện tại.

Hoặc nói cách khác, ranh giới quyết định chỉ được gắn nhãn hiện tại sẽ có độ chính xác dự đoán hoàn hảo cho dữ liệu chưa được gắn nhãn (như đó là những gì chúng ta đã sử dụng để tạo ra chúng). Không có động lực (không có độ dốc) sẽ khiến chúng ta thay đổi vị trí của ranh giới quyết định đó chỉ bằng cách thêm vào dữ liệu giả nhãn.

Tôi có đúng không khi nghĩ rằng lời giải thích được thể hiện trong sơ đồ là thiếu? Hay là tôi đang thiếu thứ gì đó? Nếu không, những gì lợi ích của giả nhãn, trao quyết định ranh giới tiền bồi dưỡng có độ chính xác hoàn hảo so với giả nhãn?

Câu trả lời:


15

Dán nhãn giả không hoạt động đối với vấn đề đồ chơi đã cho

Oliver và cộng sự. (2018) đã đánh giá các thuật toán học bán giám sát khác nhau. Hình đầu tiên của họ cho thấy cách dán nhãn giả (và các phương pháp khác) thực hiện trên cùng một vấn đề đồ chơi như trong câu hỏi của bạn (được gọi là bộ dữ liệu 'hai mặt trăng'):

nhập mô tả hình ảnh ở đây

Biểu đồ cho thấy các điểm dữ liệu được gắn nhãn và không nhãn và ranh giới quyết định thu được sau khi đào tạo mạng lưới thần kinh bằng các phương pháp học bán giám sát khác nhau. Như bạn nghi ngờ, dán nhãn giả không hoạt động tốt trong tình huống này. Họ nói rằng dán nhãn giả "là một heuristic đơn giản được sử dụng rộng rãi trong thực tế, có thể là do tính đơn giản và tổng quát của nó". Nhưng: "Mặc dù trực quan, tuy nhiên nó có thể tạo ra kết quả không chính xác khi chức năng dự đoán tạo ra các mục tiêu không có ích cho [dữ liệu không được gắn nhãn], như trong hình 1."

Tại sao và khi nào nhãn giả hoạt động?

Dán nhãn giả được Lee giới thiệu (2013), vì vậy bạn có thể tìm thêm chi tiết ở đó.

Giả định cụm

Lý do biện minh mà Lee đưa ra cho việc dán nhãn giả là nó tương tự như chính quy hóa entropy. Chính quy hóa Entropy (Grandvalet và Bengio 2005) là một kỹ thuật học bán giám sát khác, khuyến khích bộ phân loại đưa ra dự đoán tự tin về dữ liệu không được gắn nhãn. Ví dụ: chúng tôi muốn một điểm chưa được gắn nhãn được chỉ định xác suất cao nằm trong một lớp cụ thể, thay vì xác suất lan tỏa trải rộng trên nhiều lớp. Mục đích là để tận dụng giả định rằng dữ liệu được phân cụm theo lớp (được gọi là "giả định cụm" trong học tập bán giám sát). Vì vậy, các điểm lân cận có cùng một lớp và các điểm trong các lớp khác nhau được phân tách rộng rãi hơn, sao cho ranh giới quyết định thực sự chạy qua các vùng mật độ thấp của không gian đầu vào.

Tại sao dán nhãn giả có thể thất bại

Với những điều trên, có vẻ hợp lý để đoán rằng giả định cụm là điều kiện cần thiết để nhãn giả hoạt động. Nhưng, rõ ràng điều đó là không đủ, vì vấn đề hai mặt trăng ở trên không thỏa mãn giả định cụm, nhưng việc dán nhãn giả không hoạt động. Trong trường hợp này, tôi nghi ngờ vấn đề là có rất ít điểm được gắn nhãn và cấu trúc cụm thích hợp không thể được xác định từ những điểm này. Vì vậy, như Oliver et al. mô tả (và như bạn chỉ ra trong câu hỏi của bạn), nhãn giả kết quả hướng dẫn bộ phân loại về ranh giới quyết định sai. Có lẽ nó sẽ làm việc cho dữ liệu được dán nhãn nhiều hơn. Ví dụ, đối chiếu trường hợp này với trường hợp MNIST được mô tả bên dưới, trong đó nhãn giả không hoạt động.

Nó hoạt động ở đâu

Lee (2013) đã chỉ ra rằng việc dán nhãn giả có thể giúp ích cho bộ dữ liệu MNIST (với 100-3000 ví dụ được gắn nhãn). Trong bộ lễ phục. 1 giấy đó, bạn có thể thấy rằng một mạng lưới thần kinh tập huấn về 600 ví dụ nhãn (không có bất kỳ học nửa giám sát) có thể đã phục hồi cấu trúc cụm giữa các lớp. Có vẻ như việc dán nhãn giả sau đó giúp tinh chỉnh cấu trúc. Lưu ý rằng điều này không giống như ví dụ hai mặt trăng, trong đó một số điểm được gắn nhãn là không đủ để tìm hiểu các cụm thích hợp.

Bài viết cũng đề cập rằng kết quả không ổn định chỉ với 100 ví dụ được dán nhãn. Điều này một lần nữa ủng hộ ý tưởng rằng việc dán nhãn giả rất nhạy cảm với các dự đoán ban đầu và dự đoán ban đầu tốt đó yêu cầu đủ số lượng điểm được gắn nhãn.

Lee cũng chỉ ra rằng việc đào tạo trước không được giám sát bằng cách sử dụng bộ khử tự động khử nhiễu sẽ giúp thêm, nhưng đây dường như là một cách khai thác cấu trúc riêng biệt trong dữ liệu chưa được gắn nhãn; thật không may, không có so sánh với đào tạo trước không được giám sát một mình (không có nhãn giả).

Grandvalet và Bengio (2005) đã báo cáo rằng nhịp đập nhãn giả được giám sát việc học trên bộ dữ liệu CIFAR-10 và SVHN (với 4000 và 1000 ví dụ được dán nhãn, tương ứng). Như trên, đây là dữ liệu được dán nhãn nhiều hơn so với 6 điểm được gắn nhãn trong bài toán hai mặt trăng.

Người giới thiệu


5

Những gì bạn có thể được nhìn thấy trong cách tự đào tạo hoạt động là:

  1. Nó lặp đi lặp lại, không phải là một phát.

  2. Bạn sử dụng một trình phân loại trả về các giá trị xác suất. Ở mỗi lần lặp, bạn chỉ thêm nhãn psuedo cho các trường hợp thuật toán của bạn chắc chắn nhất.

Trong ví dụ của bạn, có lẽ lần lặp đầu tiên chỉ đủ tự tin để gắn nhãn một hoặc hai điểm rất gần với mỗi điểm được gắn nhãn. Trong lần lặp lại tiếp theo, ranh giới sẽ xoay nhẹ để phù hợp với bốn đến sáu điểm được gắn nhãn này và nếu nó không tuyến tính cũng có thể bắt đầu uốn cong nhẹ. Nói lại.

Nó không được đảm bảo để làm việc. Nó phụ thuộc vào trình phân loại cơ sở, thuật toán của bạn (mức độ chắc chắn bạn phải có để gán nhãn giả, v.v.), dữ liệu của bạn, v.v.

Ngoài ra còn có các thuật toán khác mạnh hơn nếu bạn có thể sử dụng chúng. Những gì tôi tin rằng bạn đang mô tả là tự đào tạo, rất dễ viết mã, nhưng bạn đang sử dụng một trình phân loại duy nhất đang xem xét cùng một thông tin. Đồng đào tạo sử dụng nhiều phân loại, mỗi phân loại nhìn vào thông tin khác nhau cho từng điểm. (Điều này hơi giống với Rừng ngẫu nhiên.) Ngoài ra còn có các kỹ thuật bán giám sát khác - chẳng hạn như các kỹ thuật phân cụm rõ ràng - mặc dù không có "điều này luôn luôn hoạt động và đây là người chiến thắng".

TRẢ LỜI bình luận: Tôi không phải là chuyên gia trong lĩnh vực này. Chúng tôi thấy nó rất phù hợp với những gì chúng tôi thường làm với khách hàng, vì vậy tôi đang học và không có tất cả các câu trả lời.

Điểm nổi bật nhất khi tôi tìm kiếm các tổng quan về học tập bán giám sát là: Khảo sát văn học học bán giám sát , từ năm 2008. Đó là thời đại trước đây, thông minh về máy tính, nhưng nó nói về những điều tôi đã đề cập ở đây.

Tôi nghe bạn nói rằng một bộ phân loại có thể đánh giá các điểm không được gắn nhãn xa nhất với các nút được gắn nhãn một cách chắc chắn nhất. Mặt khác, trực giác của chúng ta có thể đánh lừa chúng ta. Ví dụ: hãy xem xét đồ họa bạn có được từ Wikipedia với các nút đen, trắng và xám.

Đầu tiên, đây là ở dạng 2D và hầu hết các vấn đề thực tế sẽ ở các chiều cao hơn, nơi trực giác của chúng ta thường đánh lừa chúng ta. Không gian chiều cao hoạt động khác nhau theo nhiều cách - một số tiêu cực và một số thực sự hữu ích.

Thứ hai, chúng ta có thể đoán rằng trong lần lặp đầu tiên, hai điểm xám nhất bên phải, thấp nhất sẽ được gắn nhãn là màu đen, vì điểm được dán nhãn màu đen gần với chúng hơn điểm được dán nhãn màu trắng. Nhưng nếu điều đó xảy ra ở cả hai phía, ranh giới quyết định dọc sẽ vẫn nghiêng và không còn là chiều dọc. Ít nhất trong trí tưởng tượng của tôi, nếu đó là một đường thẳng, nó sẽ đi xuống khoảng trống chéo giữa hai điểm được dán nhãn ban đầu. Nó vẫn sẽ phân chia hai crescents không chính xác, nhưng nó sẽ phù hợp hơn với dữ liệu bây giờ. Lặp lại liên tục - đặc biệt với ranh giới quyết định phi tuyến tính - có thể mang lại câu trả lời tốt hơn chúng ta dự đoán.

Thứ ba, tôi không chắc chắn rằng một lần được dán nhãn, luôn được dán nhãn là cách nó thực sự hoạt động. Tùy thuộc vào cách bạn thực hiện và cách thức hoạt động của thuật toán, trước tiên bạn có thể nghiêng ranh giới trong khi uốn nó (giả sử phi tuyến tính), và sau đó một số phần bị phân loại sai của crescents có thể dịch chuyển nhãn của chúng.

Quan điểm của tôi là ba điểm đó, kết hợp với dữ liệu phù hợp (có thể là chiều cao hơn) và các phân loại thích hợp có thể làm tốt hơn so với việc giám sát thẳng với số lượng mẫu đào tạo (dán nhãn) rất nhỏ. Không có gì đảm bảo, và trong các thí nghiệm của tôi, tôi đã tìm thấy - tôi đổ lỗi cho các bộ dữ liệu quá đơn giản - rằng giám sát bán chỉ có thể cải thiện nhẹ so với giám sát và đôi khi có thể thất bại nặng nề. Sau đó, một lần nữa, tôi đang chơi với hai thuật toán mà tôi đã tạo ra có thể thực sự không tốt.


1
Bạn có thể mở rộng về loại phân loại / tình huống nào nó sẽ hoạt động không? Sự hiểu biết của tôi về hầu hết các phân loại làm việc trên loại dữ liệu ví dụ được hiển thị sẽ là các điểm cách xa ranh giới quyết định (so với các điểm đã biết) sẽ có độ tin cậy cao, do đó, các đuôi xa sẽ tự tin bị phân loại sai trong thí dụ. (Ngoài ra, bất kỳ tài liệu tham khảo / đọc thêm bạn có thể trỏ đến liên quan đến hiệu quả sử dụng pseudolabeling và các kỹ thuật liên quan sẽ được đánh giá.)
RM

@RM Đã chỉnh sửa. Thế nào
Wayne

1

Cảnh báo, tôi không phải là một chuyên gia về thủ tục này. Thất bại của tôi để tạo ra kết quả tốt không phải là bằng chứng cho thấy kỹ thuật không thể được thực hiện để làm việc. Hơn nữa, hình ảnh của bạn có mô tả chung về học tập "bán giám sát", một lĩnh vực rộng lớn với nhiều kỹ thuật khác nhau.

Tôi đồng ý với trực giác của bạn, tôi không thấy một kỹ thuật như thế này có thể hoạt động như thế nào. Nói cách khác, tôi nghĩ rằng bạn cần rất nhiều nỗ lực để làm cho nó hoạt động tốt cho một ứng dụng cụ thể và nỗ lực đó không nhất thiết phải hữu ích trong các ứng dụng khác.

Tôi đã thử hai trường hợp khác nhau, một với tập dữ liệu hình quả chuối giống như trong hình ảnh ví dụ và một tập dữ liệu khác dễ dàng hơn với hai cụm phân phối bình thường đơn giản. Trong cả hai trường hợp, tôi không thể cải thiện trình phân loại ban đầu.

Như một nỗ lực nhỏ để khuyến khích mọi thứ, tôi đã thêm tiếng ồn vào tất cả các xác suất dự đoán với hy vọng rằng điều này sẽ gây ra kết quả tốt hơn.

Ví dụ đầu tiên tôi tạo lại hình ảnh trên một cách trung thực nhất có thể. Tôi không nghĩ việc dán nhãn psuedo sẽ có thể giúp đỡ ở đây.

Kiểm tra một, dữ liệu hình quả chuối

Ví dụ thứ hai dễ dàng hơn nhiều, nhưng ngay cả ở đây, nó không cải thiện được trình phân loại ban đầu. Tôi đặc biệt chọn một điểm được dán nhãn từ trung tâm của lớp bên trái và bên phải của lớp bên phải với hy vọng nó sẽ dịch chuyển đúng hướng, không có may mắn như vậy.

Ví dụ hai, dữ liệu phân phối thông thường 2D] =

Mã cho ví dụ 1 (ví dụ 2 tương tự đủ để tôi không bị trùng lặp ở đây):

import numpy as np
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
import seaborn

np.random.seed(2018-10-1)
N = 1000

_x = np.linspace(0, np.pi, num=N)
x0 = np.array([_x, np.sin(_x)]).T
x1 = -1 * x0 + [np.pi / 2, 0]

scale = 0.15
x0 += np.random.normal(scale=scale, size=(N, 2))
x1 += np.random.normal(scale=scale, size=(N, 2))

X = np.vstack([x0, x1])

proto_0 = np.array([[0], [0]]).T # the single "labeled" 0
proto_1 = np.array([[np.pi / 2], [0]]).T # the single "labeled" 1

model = RandomForestClassifier()
model.fit(np.vstack([proto_0, proto_1]), np.array([0, 1]))
for itercount in range(100):
    labels = model.predict_proba(X)[:, 0]
    labels += (np.random.random(labels.size) - 0.5) / 10 # add some noise
    labels = labels > 0.5
    model = RandomForestClassifier()
    model.fit(X, labels)

f, axs = plt.subplots(1, 2, squeeze=True, figsize=(10, 5))

axs[0].plot(x0[:, 0], x0[:, 1], '.', alpha=0.25, label='unlabeled x0')
axs[0].plot(proto_0[:, 0], proto_0[:, 1], 'o', color='royalblue', markersize=10, label='labeled x0')
axs[0].plot(x1[:, 0], x1[:, 1], '.', alpha=0.25, label='unlabeled x1')
axs[0].plot(proto_1[:, 0], proto_1[:, 1], 'o', color='coral', markersize=10, label='labeled x1')
axs[0].legend()

axs[1].plot(X[~labels, 0], X[~labels, 1], '.', alpha=0.25, label='predicted class 0')
axs[1].plot(X[labels, 0], X[labels, 1], '.', alpha=0.25, label='predicted class 1')
axs[1].plot([np.pi / 4] * 2, [-1.5, 1.5], 'k--', label='halfway between labeled data')
axs[1].legend()
plt.show()

1

Đây là dự đoán của tôi (tôi cũng không biết nhiều về chủ đề này, chỉ muốn thêm hai xu của mình vào cuộc thảo luận này).

Tôi nghĩ rằng bạn đã đúng, không có điểm nào trong việc đào tạo một mô hình cổ điển và sử dụng các dự đoán của nó làm dữ liệu, bởi vì như bạn nói, không có động lực nào để trình tối ưu hóa làm tốt hơn nữa. Tôi đoán rằng các thuật toán bắt đầu ngẫu nhiên có nhiều khả năng tìm thấy tối ưu tương tự vì chúng "chắc chắn hơn" rằng tối ưu được tìm thấy trước đó là chính xác, do tập dữ liệu lớn hơn, nhưng điều này không liên quan.

Điều đó nói rằng, câu trả lời đầu tiên bạn nhận được có một điểm - ví dụ đó trên Wikipedia nói về việc phân cụm và tôi nghĩ điều đó tạo ra tất cả sự khác biệt. Khi bạn có dữ liệu không được ghi nhãn, về cơ bản, bạn có một loạt các điểm không ghi nhãn nằm trên một số "không gian tính năng tiềm ẩn" được chia sẻ như các điểm được gắn nhãn khác. Bạn chỉ có thể thực sự làm tốt hơn thuật toán phân loại được đào tạo trên dữ liệu được gắn nhãn, nếu bạn có thể phát hiện ra thực tế là các điểm không ghi nhãn có thể được phân tách và sau đó được phân loại dựa trên lớp mà các điểm được gắn nhãn thuộc về không gian tính năng tiềm ẩn này.

Ý tôi là, bạn cần phải làm điều này:

labelleddataclusteringclassification

... Và sau đó lặp lại với dữ liệu không ghi nhãn. Ở đây, các ranh giới cụm đã học sẽ không giống nhau, vì phân cụm không quan tâm đến nhãn lớp, tất cả những gì nó chiếm là biến đổi không gian tính năng. Việc phân cụm tạo ra một không gian tính năng tiềm ẩn, trên đó ranh giới phân loại được học và điều này chỉ phụ thuộc vào dữ liệu được gắn nhãn.

Các thuật toán không thực hiện bất kỳ loại phân cụm nào, tôi tin rằng, sẽ không thể thay đổi tối ưu của chúng dựa trên tập dữ liệu không ghi nhãn.

Nhân tiện, hình ảnh mà bạn liên kết thực hiện một công việc công bằng tôi nghĩ đến việc giải thích những gì đang diễn ra ở đây; một ranh giới quyết định được học chỉ dựa trên thuật toán phân cụm. Bạn không biết các lớp chính xác ở đây là gì - có thể là tất cả chúng đều ngẫu nhiên - chúng tôi không biết. Tất cả chúng ta có thể bây giờ là dường như có một số cấu trúc trong không gian tính năng và dường như có một số ánh xạ từ không gian tính năng đến các nhãn lớp.

Không thực sự có tài liệu tham khảo nhưng trên bài đăng Reddit này , như tôi hiểu, có một cuộc thảo luận về một GAN thực hiện học tập bán giám sát. Đó là một linh cảm của tôi rằng nó ngầm thực hiện một cụm, theo sau là phân loại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.