Problèmes d'annotation d'étiquettes et exemples de code dans l'apprentissage faiblement supervisé
Introduction :
Avec le développement de l'intelligence artificielle, l'apprentissage automatique a fait des progrès significatifs dans de nombreux domaines. Cependant, dans le monde réel, obtenir des ensembles de données à grande échelle annotés avec précision est très coûteux et prend beaucoup de temps. Pour résoudre ce problème, l'apprentissage faiblement supervisé est devenu une méthode qui a beaucoup retenu l'attention, qui permet d'effectuer des tâches d'apprentissage automatique hautes performances en utilisant des données bruitées ou incomplètement étiquetées pour la formation.
Dans l'apprentissage faiblement supervisé, le problème de l'annotation des étiquettes est au cœur de la problématique. Les méthodes traditionnelles d’apprentissage supervisé supposent généralement que chaque échantillon d’apprentissage contient des informations d’étiquette précises, mais dans des scénarios réels, il est difficile d’obtenir des étiquettes aussi parfaites. Par conséquent, les chercheurs ont proposé diverses méthodes pour résoudre le problème de l’annotation des étiquettes dans l’apprentissage faiblement supervisé.
1. Méthode d'apprentissage multi-instance
L'apprentissage multi-instance est une méthode d'apprentissage faiblement supervisée couramment utilisée, particulièrement adaptée aux problèmes d'annotation d'étiquettes. Cela suppose que l'échantillon d'apprentissage est constitué de plusieurs instances, dont certaines seulement ont des étiquettes. En apprenant les représentations au niveau de l’échantillon et de l’instance, des informations utiles peuvent en être extraites.
Ce qui suit est un exemple de code qui utilise une méthode d'apprentissage multi-instance pour résoudre le problème de classification d'images :
import numpy as np from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 生成虚拟的多实例样本和标签 # 每个样本由多个实例组成,其中只有一个实例具有标签 X = [] Y = [] for _ in range(1000): instances = np.random.rand(10, 10) labels = np.random.randint(0, 2, 10) label = np.random.choice(labels) X.append(instances) Y.append(label) # 将多实例样本转化为样本级别的表示 X = np.array(X).reshape(-1, 100) Y = np.array(Y) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2) # 训练多实例学习模型 model = SVC() model.fit(X_train, y_train) # 在测试集上进行预测 y_pred = model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("准确率:", accuracy)
2. Méthode d'apprentissage semi-supervisé
L'apprentissage semi-supervisé est une autre méthode pour résoudre le problème de l'apprentissage faiblement supervisé annotation de l'étiquette. Il utilise certaines données étiquetées et une grande quantité de données non étiquetées pour la formation. En exploitant les informations provenant de données non étiquetées, les performances du modèle peuvent être améliorées.
Ce qui suit est un exemple de code qui utilise des méthodes d'apprentissage semi-supervisé pour résoudre des problèmes de classification de texte :
import numpy as np from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 生成虚拟的带有标签和未标签的文本样本 X_labeled = np.random.rand(100, 10) # 带有标签的样本 Y_labeled = np.random.randint(0, 2, 100) # 标签 X_unlabeled = np.random.rand(900, 10) # 未标签的样本 # 将标签化和未标签化样本合并 X = np.concatenate((X_labeled, X_unlabeled)) Y = np.concatenate((Y_labeled, np.zeros(900))) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2) # 训练半监督学习模型 model = SVC() model.fit(X_train, y_train) # 在测试集上进行预测 y_pred = model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("准确率:", accuracy)
Résumé :
Le problème d'annotation d'étiquettes dans l'apprentissage faiblement supervisé est un défi important. En utilisant des méthodes telles que l’apprentissage multi-instance et l’apprentissage semi-supervisé, nous pouvons former des modèles d’apprentissage automatique hautes performances sur des données bruyantes et incomplètement étiquetées. Les exemples de code ci-dessus de deux méthodes couramment utilisées peuvent servir de référence et d'inspiration pour résoudre des problèmes spécifiques. À mesure que la recherche progresse, des méthodes plus innovantes émergeront pour nous aider à résoudre le problème de l’annotation des étiquettes dans l’apprentissage faiblement supervisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!