Модальное активное обучение: выборка по неопределенности, запрос по комитету и ожидаемое изменение модели

В контексте машинного обучения «модальный цикл активного обучения» обычно относится к итеративному процессу, который сочетает в себе активное обучение и обучение модели для повышения производительности модели машинного обучения. Активное обучение – это метод, при котором модель активно выбирает наиболее информативные или неопределенные точки данных из большого пула немаркированных данных для аннотаций, которые затем используются для обучения и улучшения модели.

Вот несколько методов, обычно используемых в модальном цикле активного обучения, а также примеры кода:

  1. Выборка по неопределенности:
    Этот метод выбирает точки данных для аннотации, в отношении которых модель наиболее неопределенна. Его можно реализовать с использованием различных мер неопределенности, таких как энтропия, маржинальная выборка или метод наименьшей достоверности.

    # Example using entropy-based uncertainty sampling
    from sklearn.datasets import load_iris
    from sklearn.ensemble import RandomForestClassifier
    from modAL.models import ActiveLearner
    from modAL.uncertainty import entropy_sampling
    X, y = load_iris(return_X_y=True)
    learner = ActiveLearner(
       estimator=RandomForestClassifier(),
       X_training=X[:10], y_training=y[:10]
    )
    # Query the most uncertain instances
    query_idx, query_inst = entropy_sampling(learner, X[10:], n_instances=5)
  2. Запрос по комитету.
    Этот метод включает в себя обучение ансамбля моделей с различной инициализацией или подмножествами обучающих данных. Разногласия или консенсус между моделями используются для выбора точек данных для аннотации.

    # Example using query-by-committee
    from sklearn.datasets import load_iris
    from sklearn.ensemble import RandomForestClassifier
    from modAL.models import ActiveLearner
    from modAL.disagreement import vote_entropy_sampling
    X, y = load_iris(return_X_y=True)
    learner = ActiveLearner(
       estimator=RandomForestClassifier(),
       X_training=X[:10], y_training=y[:10]
    )
    # Query the instances with highest disagreement among the models
    query_idx, query_inst = vote_entropy_sampling(learner, X[10:], n_instances=5)
  3. Ожидаемое изменение модели.
    Этот метод оценивает ожидаемое изменение производительности модели путем включения определенных экземпляров для аннотаций. Он учитывает такие факторы, как параметры модели или границы принятия решений.

    # Example using expected model change
    from sklearn.datasets import load_iris
    from sklearn.ensemble import RandomForestClassifier
    from modAL.models import ActiveLearner
    from modAL.expected_error import expected_error_reduction
    X, y = load_iris(return_X_y=True)
    learner = ActiveLearner(
       estimator=RandomForestClassifier(),
       X_training=X[:10], y_training=y[:10]
    )
    # Query the instances that would result in the highest expected performance improvement
    query_idx, query_inst = expected_error_reduction(learner, X[10:], n_instances=5)

Это всего лишь несколько примеров методов, используемых в модальном цикле активного обучения. Существует множество других методов, которые можно использовать, в зависимости от конкретной проблемы и используемой модели.