Функция потерь Triplet Loss

машинное обучение искусственный интеллект глубокое обучение Keras алгоритм
Функция потерь Triplet Loss

Triplet Lossфункция потерь в глубоком обучении, используемая для обученияменьше дисперсииобразцы, такие как лица и т. д., данные канала включают в себя пример привязки (якоря), положительный (положительный) пример, отрицательный (негативный) пример за счет оптимизации расстояния между примером привязки и положительным примеромменьше, чемРасстояние между якорным примером и отрицательным примером реализовано вычисление подобия образца.

Learning

набор данных:MNIST

Рамка:DL-Project-Template

Цель: Обучить модель с помощью Triplet Loss, чтобы добиться вычисления сходства рукописных изображений.

проект: https://GitHub.com/spike king/triplet-loss-mock тестовые вопросы


Модель

Ядром Triplet Loss является модель обмена якорным примером, положительным примером и отрицательным примером.Благодаря модели якорный пример группируется с положительным примером, а отрицательный пример находится далеко.

Triplet Loss ModelСтруктура выглядит следующим образом:

Triplet Loss

  • Входные данные: три входных данных, а именно пример привязки, положительный пример, отрицательный пример, разные примерыструктуратакой же;
  • модель: общая модель, которая поддерживает замену налюбойсетевая структура;
  • Выход: один выход, представляющий собой объединение трех выходов модели.

Shared ModelВыберите обычно используемую модель свертки, и на выходе будут полностью связанные 128-мерные данные:

Base Model

Triplet Lossфункция потерьФормула расчета выглядит следующим образом:

Formula


тренироваться

Параметры модели:

  • размер партии: 32
  • эпохи: 2

Гиперпараметры:

  • Значение границы Margin установлено равным1.

Алгоритм хорошо сходится, и Loss убывает линейно:

Loss

График ТФ:

Graph


проверять

Алгоритмическая эффективность(TPS): 48163 раза в секунду (0,0207625 мс)

Эффект набора проверки MNIST:

[INFO] trainer - clz 0
[INFO] trainer - distance - min: -15.4567, max: 1.98611, avg: -6.50481
[INFO] acc: 0.996632996633

[INFO] trainer - clz 1
[INFO] trainer - distance - min: -13.09, max: 3.43779, avg: -6.66867
[INFO] acc: 0.99214365881

[INFO] trainer - clz 2
[INFO] trainer - distance - min: -14.2524, max: 2.49437, avg: -5.60508
[INFO] acc: 0.991021324355

[INFO] trainer - clz 3
[INFO] trainer - distance - min: -16.6555, max: 1.21776, avg: -6.32161
[INFO] acc: 0.995510662177

[INFO] trainer - clz 4
[INFO] trainer - distance - min: -14.193, max: 1.65427, avg: -5.90896
[INFO] acc: 0.991021324355

[INFO] trainer - clz 5
[INFO] trainer - distance - min: -14.1007, max: 2.01843, avg: -6.36086
[INFO] acc: 0.994388327722

[INFO] trainer - clz 6
[INFO] trainer - distance - min: -16.8953, max: 2.84421, avg: -8.43978
[INFO] acc: 0.995510662177

[INFO] trainer - clz 7
[INFO] trainer - distance - min: -16.6177, max: 3.49675, avg: -5.99822
[INFO] acc: 0.989898989899

[INFO] trainer - clz 8
[INFO] trainer - distance - min: -14.937, max: 3.38141, avg: -5.4424
[INFO] acc: 0.979797979798

[INFO] trainer - clz 9
[INFO] trainer - distance - min: -16.9519, max: 2.39112, avg: -5.93581
[INFO] acc: 0.985409652076

Протестированный дистрибутив MNIST:

Default

Распределение выходных триплетных потерь MNIST:

Triplet Loss

В этом примере используются только 2 эпохи, и никаких специальных гиперпараметров не установлено.Есть возможности для улучшения фактического эффекта.


Добро пожаловать в Следуй за мнойGitHub: https://GitHub.com/шип Кинг

By C. L. Wang @ МейтуОблачное бизнес-подразделение

That's all! Enjoy it!