История изменений
Исправление anonymous_incognito, (текущая версия) :
Расписал кучу текста и заметил, что это был вопрос к собеседнику на уровень его знаний. Смешно вышло. Но не пропадать же тексту, поэтому оставлю.
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы минимальный лосс означал, что вектора (эмбеддинги) картинок с двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки, то есть самой с собой были максимально близки (косинус угла между ними ближе к 1), и наоборот между разными картинками, чтобы косинус между векторами был ближе к нулю. На самом деле несколько замороченне, но для иллюстрации «на пальцах» пусть так.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через обученную таким образом модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.
Исправление anonymous_incognito, :
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы минимальный лосс означал, что вектора (эмбеддинги) картинок с двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки, то есть самой с собой были максимально близки (косинус угла между ними ближе к 1), и наоборот между разными картинками, чтобы косинус между векторами был ближе к нулю. На самом деле несколько замороченне, но для иллюстрации «на пальцах» пусть так.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через обученную таким образом модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.
Исправление anonymous_incognito, :
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы минимальный лосс означал, что вектора (эмбеддинги) картинок с двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки, то есть самой с собой были максимально близки (косинус угла между ними ближе к 1), и наоборот между разными картинками, чтобы косинус между векторами был ближе к нулю. На самом деле несколько хитрее, но для иллюстрации «на пальцах» пусть так.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через обученную таким образом модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.
Исправление anonymous_incognito, :
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы минимальный лосс означал, что вектора (эмбеддинги) картинок с двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки, то есть самой с собой были максимально близки (косинус угла между ними ближе к 1), и наоборот между разными картинками, чтобы вектора были ближе к нулю. На самом деле несколько хитрее, но для иллюстрации «на пальцах» пусть так.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через обученную таким образом модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.
Исправление anonymous_incognito, :
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы лосс между двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки самой с собой должен был быть минимален и максимизирован, если картинки разные.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через обученную таким образом модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.
Исходная версия anonymous_incognito, :
Какие действия производит учитель, чтобы алгоритм начал отличать кошек от собак?
«Учитель» тычет модель носом в фотки кошек и собак и говорит «это кошка» или «это собака».
Математически это выражется в том, что вычисляется лосс-функция (функция потерь, ещё академически правильно называемая эмпирическим риском, но так сейчас почти никогда уже не говорят) L(Y, Ŷ), где Y - истинный результат, Ŷ - предсказание модели Значение лосса в ходе тренировки модель учится минимизировать, подбирая свои веса так, чтобы лосс был минимальным. Реально часто из практических соображений минимизируется как бы не сам лосс, а его логарифм.
К примеру, для бинарной классификации (кошка/собака), фактически (кошка/не кошка) или (собака/не собака), когда есть только два варианта, удобно использовать бинарную кросс-энтропию (BCE), например,
L = - (y*log(p) + (1-y)*log(1-p)) ,
где y - истинный класс объекта (например, кошка y = 1, собака y = 0), а p - вероятность принадлежности к классу кошки, вычисленная моделью.
Задача тренировки модели, классифицирующей собак и кошек, тогда будет добиться возможно большего минимума L.
Это обучение с учителем.
В случае обучения без учителя нет истинного значения и для лосса выбирается что-нибудь похитрее, например, модель учится максимально противопоставлять разные картинки, есть разные способы, описывать их тут долго, но например, модель учат выдавать эмбеддинги (вектора) картинок на парах картинкок так, чтобы лосс между двумя аугментациями (умышленными искажениями, например, поворота, зашумливания и др.) одной исходной картинки самой с собой должен был быть минимален и максимизирован, если картинки разные.
Кому интересно, нагуглите и почитайте например про лосс Barlow Twins.
В результате получается, что если прогнать датасет через модель, эмбеддинги образуют выраженную кластеризацию. Затем можно приделать к эмбеддингам классифицирующий слой, который уже выдаёт вероятности от 0 (собака) до 1 (кошка) и обучить уже только классифицирующий слой с учителем.
Фишка в том, что неразмеченный датасет может состоять из на порядки большего количества картинок, чем обучающий классифицирующий слой.