Попытки генерить аниме лица с помощью KMeans

  1. Оказывается KMeans на картинка можно легко завиузализировать, показав центроиды. Пример для MNIST с цифрами 8x8 пикселей(1)
  2. Продвинутый KMeans под название GaussianMixture делает вместо круглых кластеров(потому что можно считать, что KMeans дает кластеры с центром в центроидах(вау) и радиусом до самого дальнего обьекта кластера) эллипсоидные кластеры. И, хотя, вычислительно этот алгоритм такой себе, он тем не менее дают простую генеративную модель: из этого распределения можно сэмплировать! Пример сэмплированных картинок из того же MNIST(2) Причем для уменьшения вычислений юзается PCA с сохранением 99% дисперсии, и после сэмплирования результаты преобразуются обратно.
  3. Это все узнал из пары блокнотов из коллекции коллекций блокнотов на хабре, которую я хотел разобрать, но слишком лень
  4. Захотелось попробовать GaussianMixture на том самом датасете с аниме лицами, но архив пока что слишком долго распаковывается и походу выдает битые картинки. Попытаюсь сделать все-таки, но мб будет супердолго и массив с картинками не влезет в оперативку. Хз как потоково обучать модели из sklearn, так что походу придется забить, если не получится. Тем более GaussianMixture должен долго считаться, так как даже если сжать картинки до 60x60, то каждая картинка будет иметь 10800 признаков, которые придется сжимать через PCA. Причем на меньшем количестве картинок не получится ничего(я пробовал 100, на 1000 попадалась битая картинка) и PCA давал фич порядка количества картинок, что, как я подозреваю, просто их разделяет.
  5. Одна из первых картинок в датасете аниме девочек похожа на Бернкастель(на мой слепой взгляд, хотя больше похоже по стилю на кого-нибудь из Fate) ❤ (3)
  6. Карась перерепостил пред запись как рекламу ❤

Colab вылетел во время KMeans при кластеризации 40000 картинок, походу GaussianMixture с кластерами от 1 до 200 с шагом в 10 посчитать будет невозможно вообще, чтобы подобрать количества кластеров через AIC, BIC

Не, KMeans работает около часа-два и colab вылетает по RAM. Походу не получится генерить так аниме лица из-за нехватки мощностей

Таки запустил GaussianMixture на 500 картинках сразу с PCA. В итоге GaussianMixture выдает просто взвешенную сумму обучающего датасета при генерации, а взвешенные суммы картинок супер плохо выглядят. Так что, к сожалению, GaussianMixture не применим для задачи генерации аниме лиц, разве что можно повысить размерность(убрать PCA) но тогда стабильно кончается RAM

На пикче пример 100 сгенерированных лиц, те которые выглядят нормально, просто являются центроидами и потому есть в датасете